find()
find() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素。
find() 方法为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数,即返回找到的第一个符合条件的数组元素。
如果没有符合条件的元素返回 undefined
let arr=[12,15,45,20,7];
function check(number) {
return number >= 19;
}
console.log(arr.find(check)); //45
map()
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
const numbers = [4, 9, 16];
function myFunction() {
return( numbers.map(Math.sqrt)); //[2,3,4]
}
filter()
filter()方法返回一个新数组,该数组元素是所有回调函数执行时返回值为 true 的原数组元素,起到过滤的作用。
filter()只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略,同时,新创建的数组也不会包含这些元素。
function isBigEnough(element, index, array) {
return (element >= 10);
}
let filtered = [12, 5, 7, 10, 46].filter(isBigEnough); // [12,10,46 ]
some()
对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 true,如果发现这个元素,some 将返回 true,如果回调函数对每个元素执行后都返回 false ,some 将返回 false
some()可以用来查找数组中是否含有符合callback函数条件的元素。
function isBigEnough(element, index, array) {
return (element >= 10);
}
let passed = [2, 5, 8, 1, 4].some(isBigEnough);
// passed is false
passed = [1, 5, 8, 10, 4].some(isBigEnough);
// passed is true
every()
顾名思义,对数组中的每个元素都执行一次指定的函数(callback),数组中的每个元素都符合callback函数条件则返回true,否则返回false
function isBigEnough(element, index, array) {
return (element >= 10);
}
let passed = [2, 15, 8, 11, 4].some(isBigEnough);
// passed is false
passed = [11, 25, 38, 10, 64].some(isBigEnough);
// passed is true
forEach()
打印数组元素
let arr=[5,6,7];
function printElt(element, index, array) {
document.writeln("[" + index + "] is " + element + "<br />");
}
arr.forEach(printElt);
//[0] is 5
//[1] is 6
//[2] is 7
indexOf()
查找数组中的元素,如果存在则返回该元素的下标,否则返回 -1
let array=[1,3,2,5,2]
let index = array.indexOf(2); // 2
let insex = array.indexOf(6); //-1
lastIndexOf()
逆序查找数组中的元素,从最后一个元素开始如果存在则返回该元素的下标,否则返回 -1
let array=[1,2,3,5,2]
let index = array.lastIndexOf(2); // 4
index = array.lastIndexOf(2, 3); // 2