Редко работаю с JS, но вот пришлось и неожиданно для себя обнаружил очень странное (на мой взгляд) поведение стандартных циклов. Т.е. я пишу например for (let index in data), но в большинстве языков параметром цикла идет сам элемент, а не его ключ... Я даже ненадолго залип на этой ошибке прежде чем понял что там именно ключ передается. А можно как то сделать чтобы возвращался и элемент тоже? Или только самому писать let item = data[index]? Ну типа чтобы может какой-нибудь кортеж возвращался если они тут есть... Или еще что-то.
Например как в питоне: for key, value in data.iteritems():
В последних версиях языка ввели for..of
var arr = ['a', 'b', 'c']
for (let i of arr) {
console.log(i);
}
Кроме этого можно использовать методы Object.entries и Object.values (данные методы можно применять к любым объектам, не только к массивам)
var arr = ['a', 'b', 'c']
console.log(JSON.stringify(Object.entries(arr)));
console.log(JSON.stringify(Object.values(arr)));
Например как в питоне: for key, value in data.iteritems():
Можно использовать деструктуризацию при обходе:
var arr = ['a', 'b', 'c']
for (let [key, value] of Object.entries(arr)) {
console.log(key, value);
}
Используйте for ... of ...
for (let value of data) {
console.log(value);
}
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Statements/for...of
Обратите внимание на поддержку браузеров!
IE не поддерживает данную конструкцию.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей