Есть код на Java:
List<HashMap<String, String>> dc = (List<HashMap<String, String>>) request.getAttribute("DC");
Iterator<HashMap<String, String>> dcIt = dc.iterator();
while (dcIt.hasNext()) {
HashMap<String, String> dcEntry = dcIt.next(); //код
}
Мне нужно переписать логику на JS.
Как итератор переписать на JS?
В новой спецификации js есть такое понятие как итераторы
Для того что бы ваш объект умел в итераторы, нужно добавить ему специальный метод Symbol.iterator
'use strict';
const range = {
from: 1,
to: 5
}
// сделаем объект range итерируемым
range[Symbol.iterator] = function() {
let current = this.from;
const last = this.to;
// метод должен вернуть объект с методом next()
return {
next() {
if (current <= last) {
return {
done: false,
value: current++
};
} else {
return {
done: true
};
}
}
}
};
for (let num of range) {
alert(num); // 1, затем 2, 3, 4, 5
}
Почитать подробнее
Список превращается в массив, а словарь со строковыми ключами - в простой объект. Только объекты для словарей рекомендуется создавать через Object.create(null) в случае, если он поддерживается браузером.
var dcs = [{x: "a"}, {x: "b", y: "qqq", "мой ключ": "значение"}];
for (var dc of dcs) {
for (var key of Object.keys(dc)) {
console.log(`${key} => ${dc[key]}`);
}
console.log("===");
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники