定义一个数组:
let arr1 = [1, 1, 2, 3, 10, 20, 30, 100, 200, 300];
some()
只要有一个元素符合条件则为真,后面的元素不在遍历【跳出循环】
代码:
/*【some】只要有一个元素符合条件则为真,后面的元素不在遍历【跳出循环】*/
let x1 = arr1.some((i) => {
// if (i > 9) {
// return true
// }
return i > 9
})
console.log(x1)//true
console.log(arr1)//不改变原数组
运行结果:
every()
一假即假 ,而且只要有一个元素是假,其后面的元素将不再遍历【跳出循环】
代码:
/*【every】一假即假 ,而且只要有一个元素是假,其后面的元素将不再遍历【跳出循环】。*/
let x2 = arr1.every((i) => {
// if (i < 100) {
// return true
// }
return i < 100
})
console.log(x2)//false
console.log(arr1)//不改变原数组
运行结果如图:
find()
找数组中的元素,只要有一个元素满足就返回这个元素,其后面的元素将不再遍历【跳出循环】
代码:
/*【find】找数组中的元素,只要有一个元素满足就返回这个元素,其后面的元素将不再遍历【跳出循环】。*/
let x3 = arr1.find((i) => {
return i > 100
})
console.log(x3)//200
console.log(arr1)//不改变原数组
运行结果如图:
filter()
所有满足的元素都返回,创建一个新数组装这些元素
代码:
/*【filter】所有满足的元素都返回,创建一个新数组装这些元素*/
let x4 = arr1.filter((i) => {
return i > 99
})
console.log(x4)//[100,200,300]创建了新数组
console.log(arr1)//不改变原数组
运行结果如图:
map()
返回修改过后的数组
代码:
/*【map】返回修改过后的数组*/
let x5 = arr1.map((i) => {
return i + 1
})
console.log(x5)//[2, 2, 3, 4, 11, 21, 31, 101, 201, 301]
console.log(arr1)//不改变原数组
运行结果如图:
reduce()
reduce() 是数组的归并方法,会对数组每一项进行遍历,reduce() 可同时将前面数组项遍历产生的结果与当前遍历项进行运算
可以 求和,求最大值,去重
代码;
/*【reduce】*/
//求和
let x6 = arr1.reduce(function (i, j) {
return i + j
}, 0)
//求最大值
let x66 = arr1.reduce(function (i, j) {
return Math.max(i, j)
}, 0)
//去重
let x666 = arr1.reduce(function (i, j) {
i.indexOf(j) === -1 && i.push(j)//将需要去重处理的数组中的第1项在初始化数组【初始为空】中查找,如果找不到(空数组一定查找不到),就将该项添加到初始化数组中 ,然后第2项...
return i
}, [])
console.log(x6, x66, x666)//667,300, [ 1, 2, 3, 10, 20, 30, 100, 200, 300]
console.log(arr1)
运行结果如图: