For item in data

216
31 марта 2018, 18:07

Редко работаю с JS, но вот пришлось и неожиданно для себя обнаружил очень странное (на мой взгляд) поведение стандартных циклов. Т.е. я пишу например for (let index in data), но в большинстве языков параметром цикла идет сам элемент, а не его ключ... Я даже ненадолго залип на этой ошибке прежде чем понял что там именно ключ передается. А можно как то сделать чтобы возвращался и элемент тоже? Или только самому писать let item = data[index]? Ну типа чтобы может какой-нибудь кортеж возвращался если они тут есть... Или еще что-то.

Например как в питоне: for key, value in data.iteritems():

Answer 1

В последних версиях языка ввели 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); 
}

Answer 2

Используйте for ... of ...

for (let value of data) {
  console.log(value);
}

https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Statements/for...of

Обратите внимание на поддержку браузеров!

IE не поддерживает данную конструкцию.

READ ALSO
Мне нужен Node.JS хостинг! [требует правки]

Мне нужен Node.JS хостинг! [требует правки]

я не разбираюсь вобще, что такое vps не понимаю, мне желательно нужен хостинг на русском языке, чтобы я просто загрузил сайт и он там сразу работалну...

233
Фокус при клике на кнопку которая открывает input

Фокус при клике на кнопку которая открывает input

Как сделать фокус на input, который сначала скрыт,но по клику на кнопке открывается ? Атрибут autofocus срабатывает только первый раз, а 'nativeElement'...

249
JS отправка сообщения Enter. Конфликт с Shift+Enter

JS отправка сообщения Enter. Конфликт с Shift+Enter

Здравствуйте, есть код который служит для отправки сообщения при нажатии enter:

192