#javascript
Или по-другому как перебрать все элементы массива в Javascript?
Что-то вроде foreach(array as value)
Ответы
Ответ 1
Есть несколько вариантов, в зависимости от ваших задач. Начнём с простого: var a = ["a", "b", "c"]; a.forEach(function(entry) { console.log(entry); }); Немного более старомодный вариант: var index; var a = ["a", "b", "c"]; for (index = 0; index < a.length; ++index) { console.log(a[index]); } Кроме того, есть собственно for-in. Может использоваться, например, для разреженных (sparsed) массивов: Примитивный, но не совсем верный вариант: for (var key in data) { key;//ключ data[key];//значение } Более правильно: var key; var a = []; a[0] = "a"; a[10] = "b"; a[10000] = "c"; for (key in a) { if (a.hasOwnProperty(key) && /^0$|^[1-9]\d*$/.test(key) && key <= 4294967294 ) { console.log(a[key]); } } В EcmaScript6 в виде предложения (draft) добавлена ещё конструкция for-of: var val; var a = ["a", "b", "c"]; for (val of a) { console.log(val); } Собственно, по большому счёту, for-of это просто правильный for-in, не требующий дополнительных проверок как в примере выше. Принципиальные же отличия в деталях можно узнать из предложения (англ.). Подробнее: https://stackoverflow.com/questions/9329446/for-each-over-an-array-in-javascript (англ.) — очень подробный ответ на вопрос с детальным рассмотрением всех возможных вариантов http://habrahabr.ru/post/247857/ (рус.) — дословный перевод вышеназванного ответа на русский языкОтвет 2
В стандартном JavaScript у массивов есть метод forEach: ['a', 'b', 'c'].forEach(function(value, index) { console.log('a[' + index + '] = ' + value); }); Получаем: a[0] = a a[1] = b a[2] = c Не стоит путать с конструкцией for (key in object). Такая конструкция перебирает свойства объекта, а не элементы массива. Хотя элементы массива считаются его свойствами, вы получите не только их, и вам придётся фильтровать свойства при помощи hasOwnProperty.Ответ 3
for (var i = 0; i < array.length; i++) { console.log(array[i]); }Ответ 4
Можно использовать функцию $.each https://api.jquery.com/each/Ответ 5
for (var i = 0; i <= myArray.length; i++) { /*тут делаем что нужно с myArray[i]*/ }Ответ 6
посмотрите реализацию Array.prototype.forEach() Синтаксис arr.forEach(callback[, thisArg]) Параметры callback Функция, создающая элемент нового массива, принимает три аргумента: currentValue Текущий обрабатываемый элемент в массиве. index Индекс текущего обрабатываемого элемента в массиве. array Массив, по которому осуществляется проход. thisArg Необязательный параметр. Значение, используемое в качестве this при вызове функции callback. Следующий код выводит каждый элемент массива на новой строке журнала: function logArrayElements(element, index, array) { console.log('a[' + index + '] = ' + element); } // Обратите внимание на пропуск по индексу 2, там нет элемента, поэтому он не посещается [2, 5, , 9].forEach(logArrayElements); // логи: // a[0] = 2 // a[1] = 5 // a[3] = 9
Комментариев нет:
Отправить комментарий