Ecmascript5 определяет 5 итерационных методов для массивов. Каждый метод получает два параметра: функция для выполнения на каждом элементе и объект Scope (необязательно), которая запускает функцию (то есть значение, которое влияет на это). Функции, передаваемые в эти методы, получают три параметра: значение элемента массива, положение элемента в массиве и сам объект массива. В зависимости от метода использования, возвращаемое значение после выполнения этой функции может или не может влиять на возвратное значение метода. Эти 5 итеративных методов:
Все пять итерационных методов принимают два параметра: функция для выполнения каждого элемента и область работы функции (необязательно)
Каждый (): запустите заданную функцию на каждом элементе в массиве. Если функция возвращает истину для каждого элемента, она возвращает true.
Filter (): запускает заданную функцию на каждом элементе в массиве. Возвращение множества предметов, которые вернут правдоподобно.
foreach (): запускает заданную функцию для каждого элемента в массиве. Функция не возвращает значение.
map (): запустите заданную функцию на каждом элементе в массиве. Возвращает функцию, состоящую из результата каждого вызова функции.
Некоторые (): запустите заданную функцию на каждом элементе в массиве. Если функция возвращает true для любого, она возвращает True
Все вышеперечисленные методы не будут изменять значения, содержащиеся в массиве.
В приведенном выше методе каждый () и некоторые () очень похожи, оба используются для запроса, удовлетворяет ли предмет в массиве определенное условие. Для метода каждого (), передаваемой функции должна возвращать истину для каждого элемента, прежде чем этот метод вернет true. В противном случае он возвращает ложь. Метод некоторых () возвращает истину до тех пор, пока передаваемая функция возвращает истину к элементу в массиве. Например:
var nums = [1,2,3,4,5,4,3,2,1]; var result = nums.ever (функция (элемент, индекс, массив) {return (item> 2);}) console.info (result);Приведенный выше код будет печатать False в консоли.
var nums = [1,2,3,4,5,4,3,2,1]; var result = nums.some (функция (элемент, индекс, массив) {return (item> 2);}) console.info (result);Приведенный выше код печатает в консоли.
Ниже приведен пример функции Filter (), которая использует указанную функцию, чтобы определить, есть ли элемент в возвращенном массиве. Например, чтобы вернуть массив со всеми значениями, превышающими 2, вы можете использовать следующий код:
var nums = [1,2,3,4,5,4,3,2,1]; var result = nums.filter (function (item, index, array) {return (item> 2);}) console.info (result); // [3,4,5,4,3]Приведенный выше код возвращает массив, содержащий 3, 4, 5, 4, 3, вызывая метод Filter (). Этот метод очень полезен для запроса всех массивов, которые соответствуют определенным критериям.
Метод Map () также возвращает массив, и каждый элемент в этом массиве является результатом запуска входящей функции на соответствующем элементе в исходном массиве. Например, вы можете умножить каждый элемент в массиве на 2, а затем вернуть массив этих продуктов:
var nums = [1,2,3,4,5,4,3,2,1]; var result = nums.map (function (item, index, array) {return item * 2;}) console.info (result); // [2,4,6,8,10,8,6,4,2]Метод Map () подходит для создания массива, содержащего элементы один за другим в другом массиве.
Последний - метод Foreach (), который просто запускает функцию передачи на каждом элементе в массиве. Этот метод не имеет возвратного значения, по существу, итерации над массивом, используя цикл. См. Следующий пример:
var nums = [1,2,3,4,5,4,3,2,1]; nums.foreach (функция (элемент, индекс, массив) {// выполнить требуемую операцию})Эти методы массива в JS могут значительно облегчить обработку задач массива, выполняя различные операции.
Браузеры, которые поддерживают эти итерационные методы: IE9+, Firefox2+, Safari3+, Opera9.5+и Chrome.
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1]; // every () и некоторые () являются наиболее похожими // every () элемент: текущий элемент пересечения, индекс: индекс текущего элемента, массив: сама объект массива var waryresult = number.every (функция (элемент, индекс, массив) {return item> 2;}); alert (everyresult); // false // acke () var someresult = number.some (function (item, index, array) {return item> 2;}); alert (someresult); // true // filter var filterresult = number.filter (function (item, index, array) {return item> 2;}); Alert (FilterResult); // [3,4,5,4,3] // map () var mapResult = number.map (function (item, index, array) {return (item * 2);}); Alert (MapResult); // [2,4,6,8,10,8,6,4,2] // Форич, по сути, не является разницей в цикле var foreachresult = numbers.foreach (функция (элемент, индекс, массив) {alert (item)});Выше всего об этой статье. Я надеюсь дать вам несколько советов, чтобы лучше понять метод итерации JavaScript.