every()
对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。(对数组中每一项进行“&&”运算)
// 每一项都小于6
var numbers = [1,2,3,4,5,1]
var result = numbers.every(function (item, index, array) {
return (item < 6)
})
console.log(result) // true
// 数组中有等于5的项
var numbers = [1,2,3,4,5,1]
var result = numbers.every(function (item, index, array) {
return (item < 5)
})
console.log(result) // false
some()
对数组中的每一项运行给定的函数,如果该函数对任意一项返回true,则返回true。(对数组每一项进行“||”运算)
// 每一项都小于6
var numbers = [1,2,3,4,5,1]
var result = numbers.some(function (item, index, array) {
return (item > 6)
})
console.log(result) // false
// 数组中有等于5的项
var numbers = [1,2,3,4,5,1]
var result = numbers.some(function (item, index, array) {
return (item < 5)
})
console.log(result) // true
filter()
对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组
var filtNumbers = [1,2,3,4,5,6,4,3,2]
var filArr = filtNumbers.filter((item, index, array) => {return (item >= 3)})
console.log(filArr) // [3, 4, 5, 6, 4, 3]
forEach()
对数组中的每一项运行给定函数,无返回值。回调函数传入第三个参数array,并对其进行修改,会修改原数组
var arr = [1,2,3,4]
arr.forEach((item, index, array) => { array[index] = item * 3})
console.log(arr) // [3,6,9,12]
map()
对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
var arr = [1,2,3,4]
var mapArr = arr.map((item, index, array) => { return item * 3})
console.log(mapArr) // [3,6,9,12]
console.log(arr) // [1,2,3,4]
reduce()/reduceRight()
两者属于归并方法。其中reduce()从数组的第一项开始,逐个遍历到最后。reduceRight()则从数组的最后一项开始,向前遍历到第一项。两个方法都接收两个参数:一个在每一项上调用的函数和作为归并基础的初始值(可选)
两个方法的回调函数接收4个参数:前一个值,当前值,项的索引值和数组对象。这个函数返回的任何值都会作为第一个参数自动传给下一项
var arr = [1,2,3,4,5]
var sum = arr.reduce(function (prev, cur, index, array) {
console.log(prev, cur)
// 1 2
// 3 3
// 6 4
// 10 5
return prev + cur
})
var sum = arr.reduceRight(function (prev, cur, index, array) {
console.log(prev, cur)
// 5 4
// 9 3
// 12 2
// 14 1
return prev + cur
})
console.log(sum) // 15
for...of
循环数组,返回数组中的项
var arr = [1,2,3,4,5]
for (let a of arr) {
console.log(a) // 1 2 3 4 5(打印数组项)
console.log(typeof a) // number number number number
}
for...in
循环数组,返回数组项的下标
var arr = [1,2,3,4,5]
for (let b in arr) {
console.log(b) // 0 1 2 3 4(打印数组下标)
console.log(typeof b) // string string string string string
}