【发布时间】:2020-08-09 07:08:23
【问题描述】:
我对 Javascript 还很陌生,目前正在处理一堆 linting 错误。寻求明确这一点。
我有一个 [int, object] 格式的映射,该映射是通过 JSON.parse-ing 来自服务器的一些数据并放入键值映射中获得的。
我需要遍历对象集。据我了解,这是:
for(item in/of map) {}
性能不佳,最好使用迭代器。
当我使用 const iterator = map.values(); 获得地图值的迭代器并使用测试时
while(!iterator.done) {
iterator.next();
}
我发现这无限循环,首先通过地图,然后通过“未定义”。
我目前的解决方案如下:
let item;
const iterator = map.values();
while ((item = iterator.next().value) != null) {
// do stuff with item
}
这感觉像是一个合理的解决方案,但我希望能清楚地了解 while 循环内的赋值,还是依赖空终止在 javascript 中是一个坏主意;或者是否有更惯用的解决方案?
【问题讨论】:
标签: javascript dictionary foreach iterator