1. Array.forEach()
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。但对于空数组是不会执行回调函数的。
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value, index, array) {
txt = txt + value + "<br>";
}
//txt = "45<br>4<br>9<br>16<br>25<br>"
参数 |
描述 |
value |
必需。当前元素 |
index |
可选。当前元素的索引值。 |
array |
可选。当前元素所属的数组对象。 |
没有返回值,本质上等同于 for 循环,对每一项执行 function 函数。即map是返回一个新数组,原数组不变,forEach 是改变原数组。
2. Array.map()
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。map() 方法按照原始数组元素顺序依次处理元素。
- map()方法通过对每个数组元素执行函数来创建新数组。
- map()方法不会对没有值的数组元素执行函数。
- map()方法不会更改原始数组。
//这个例子将每个数组值乘以2:
var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
function myFunction(value, index, array) {
return value * 2;
}
//numbers2 = [90, 8, 18, 32, 50]
参数 |
描述 |
value |
必需。当前元素 |
index |
可选。当前元素的索引值。 |
array |
可选。当前元素所属的数组对象。 |
3. Array.filter()
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
- filter()不会对空数组进行检测。
- filter()不会改变原始数组。
var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
// over18 = [45, 25]
参数 |
描述 |
value |
必需。当前元素 |
index |
可选。当前元素的索引值。 |
array |
可选。当前元素所属的数组对象。 |
4. Array.reduce()
reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。方法在数组中从左到右工作。另请参见 reduceRight()。
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);
function myFunction(total, value, index, array) {
return total + value;
}
//sum = 99
//reduce() 方法能够接受一个初始值:
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction, 100);
function myFunction(total, value) {
return total + value;
}
//sum = 199
参数 |
描述 |
total |
必需。初始值, 或者计算结束后的返回值。 |
value |
必需。当前元素 |
index |
可选。当前元素的索引值。 |
array |
可选。当前元素所属的数组对象。 |
5. Array.reduceRight()
reduceRight()和reduce()功能一样,不同点在于reduceRight()是从数组右到左开始执行
6. Array.every()
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。every() 方法使用指定函数检测数组中的所有元素:如果数组中检测到有一个元素不满足,则整个表达式返回 false,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true。
- every()不会对空数组进行检测。
- every()不会改变原始数组。
var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
//allOver18 = false
参数 |
描述 |
value |
必需。当前元素 |
index |
可选。当前元素的索引值。 |
array |
可选。当前元素所属的数组对象。 |
7. Array.some()
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。some() 方法会依次执行数组的每个元素:如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。
- some()不会对空数组进行检测。
- some()不会改变原始数组。
var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
//someOver18 = true
参数 |
描述 |
value |
必需。当前元素 |
index |
可选。当前元素的索引值。 |
array |
可选。当前元素所属的数组对象。 |
8. Array.indexOf()
方法可返回数组中某个指定的元素位置。该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。如果在数组中没找到指定元素则返回 -1。
//array.indexOf(item, start)
var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");
//a = 0;
参数 |
描述 |
item |
必需。要检索的项目。 |
start |
可选。从哪里开始搜索。负值将从结尾开始的给定位置开始,并搜索到结尾。 |
9. Array.lastIndexOf()
Array.lastIndexOf() 与 Array.indexOf() 类似,但是从数组结尾开始搜索。返回它最后出现的位置。
10. Array.find()
find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。find() 方法为数组中的每个元素都调用一次函数执行:当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。如果没有符合条件的元素返回 undefined.
- find()对于空数组,函数是不会执行的。
- find()并没有改变数组的原始值。
var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
//first = 25;
参数 |
描述 |
value |
必需。当前元素 |
index |
可选。当前元素的索引值。 |
array |
可选。当前元素所属的数组对象。 |
11. Array.findIndex()
findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。findIndex() 方法为数组中的每个元素都调用一次函数执行:当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。如果没有符合条件的元素返回 -1.
- findIndex()对于空数组,函数是不会执行的。
- findIndex()并没有改变数组的原始值。
var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
//first = 3;
参数 |
描述 |
value |
必需。当前元素 |
index |
可选。当前元素的索引值。 |
array |
可选。当前元素所属的数组对象。 |
数组迭代(forEach, map,filter,reduce,reduceRight,every,some,indexOf,lastIndexOf)
原文:https://www.cnblogs.com/bangeshiyiren/p/13949341.html