Я довольно новичок в Javascript и в настоящее время работаю с кучей ошибок linting. В частности, для ясности.
У меня есть карта в формате [int, object], карта получается путем JSON .парсинга некоторых данных с сервера и помещения в карту значения ключа .
Мне нужно перебрать множество объектов. Насколько я понимаю, это: for(item in/of map) {}
не является производительным, и использование итератора предпочтительнее.
Когда я получаю итератор для значений моей карты, используя const iterator = map.values();
, и тестирую, используя
while(!iterator.done) {
iterator.next();
}
Я считаю, что это происходит бесконечно, сначала через карту, а затем через 'undefined'.
Мое текущее решение заключается в следующем:
let item;
const iterator = map.values();
while ((item = iterator.next().value) != null) {
// do stuff with item
}
Это похоже на разумное решение, но я ' я надеюсь на некоторую ясность относительно того, является ли присвоение внутри while l oop, или полагаться на нулевое завершение, плохой идеей в javascript; или если есть более идиоматическое c решение?