Дополнительно
Для... циклов в JavaScript - пары ключ-значение
Мне интересно, есть ли способ сделать что-то вроде цикла PHP foreach
в JavaScript. Функциональность, которую я ищу, примерно такая: PHP Snippet:
foreach($data as $key => $value) { }
Я рассматривал цикл JS for..in
, но, похоже, нет возможности указать as
. Если я сделаю это с помощью 'обычного' цикла for (for(var i = 0; i < data.length; i++
), есть ли способ получить пары ключ => значение?
376
15
hasOwnProperty
используется для проверки, действительно ли вашацель
обладает этим свойством, а не унаследовала его от своего прототипа. Немного проще было бы:Он просто проверяет, что
k
не является методом (так как еслиtarget
будетarray
, вы получите множество методов, например,indexOf
,push
,pop
и т.д.).Никто не упоминал о
объект.ключи
поэтому я'МР упомянуть его.Если вы можете использовать ЕС6 непосредственно или с Бабель (компилятор в JS), то вы можете сделать следующее:
в
в
Который будет распечатать этот выход:
Объект.записи () метод возвращает массив данного объекта's собственное перечисляемое свойство
[ключ, значение]` пар, в том же порядке, как это предусмотрено для...в цикл (разница в том, что для-в петлю перечисляет свойства в цепочке прототипов, а).Надеюсь, что это помогает! =)
for...in будет работать для вас.
В современном JavaScript вы также можете сделать это:
Синтаксис php - это просто сахар.
Я предполагаю, что вы знаете, что " я " является ключевым и что вы можете получить значение с помощью данных[я]` (и просто ярлык для этого).
ECMAScript5 представил
объекту
<суп>[МДН]</с SUP> У для массивов (кажется, у вас есть массив):В МДН документация предусматривает прокладку для браузеров, не поддерживающих его.
Конечно, это не работает для объектов, но вы можете создать аналогичную функцию для них:
Поскольку вы пометили вопрос с [тег:в jQuery], библиотека jQuery предоставляет
$.каждый
<суп>[документы]</с SUP> У, который петли через оба массива и структуры объекта.В JavaScript каждый объект имеет кучу встроенных пар ключ-значение, которые имеют мета-информации. Когда вы перебрать все пары ключ-значение для объекта вы'вновь перебирая их тоже. Использование метода hasOwnProperty() фильтры эти.
Вы можете использовать для..В` для этого.
ЕС6 предоставит карте.прототип.еогеасп(обратного вызова), который может быть использован такой
Если вы используете Лодашь, Вы можете использовать
_.команда foreach
Вы можете использовать 'в' петли для этого:
Ниже приводится пример, что так близко, как вы получите.
Если вы'вновь с помощью jQuery см.: http://api.jquery.com/jQuery.each/
да, вы можете иметь ассоциативные массивы также в JavaScript: