本文都是相对简单的API调用。
一、迭代方法
API | 参数 | 作用 | 返回值 | 备注 |
---|---|---|---|---|
forEach | func(v,i,arr) | 对数组中的每一项进行操作 | 没有返回值 | |
map | func(v,i,arr) | 对数组中的每一项进行操作, 将结果组成新数组 |
新数组 | |
filter | func(v,i,arr) | 筛选出符合条件的值, 每个值只出现一次, 将结果组成新数组 |
新数组 | |
some | func(v,i,arr) | 判断是否有符合条件的值 | true/false | 一真即真 |
every | func(v,i,arr) | 判断是否所有值都符合条件 | true/false | 一假即假 |
示例代码:
//首先创建一个不错的数组
let arr = [2, 8, 4, 6, 9, 2, 7, 3, 1, 5, 1, 8]
// map 遍历
let mapArr = arr.map((v, i, arr) => {
return arr[i] = v * 2
})
console.log(mapArr) // map有返回值 [ 4, 16, 8, 12, 18, 4, 14, 6, 2, 10, 2, 16 ]
// some 判断有没有符合条件的值
let someRes = arr.some((v, i, arr) => {
return v > 5
})
console.log(someRes) // true
// every 判断是否所有值都符合条件
let everyRes = arr.every((v, i, arr) => {
return v > 5
})
console.log(everyRes) // false
// filter 数组筛选
let arrFilter1 = arr.filter((v, i, arr) => {
return v > 5;
})
console.log(arrFilter1) // [ 16, 8, 12, 18, 14, 6, 10, 16 ]
// filter 数组去重(小技巧)
let arrFilter2 = arr.filter((v, i, arr) => {
return arr.indexOf(v) === i;
})
console.log(arrFilter2) // [ 4, 16, 8, 12, 18, 14, 6, 2, 10 ]
// forEach 遍历数组
let forEachArr = arr.forEach((v, i, arr) => {
return arr[i] = v * 2;
})
console.log(forEachArr) // forEach 没有返回值 undefined
console.log(arr) // [ 8, 32, 16, 24, 36, 8, 28, 12, 4, 20, 4, 32 ]
二、归并方法
API | 参数 | 作用 | 返回值 | 备注 |
---|---|---|---|---|
reduce | func(prev,current,i,arr),num | 链接数组 | 新数组 | |
reduceRight | func(prev,current,i,arr),num | 反着链接数组 | 新数组 |
示例代码:
// 首先创建一个比较规则的数组
let arr = [1, 2, 3, 4, 5]
let sum1 = arr.reduce((prev, current, i, arr) => {
console.log(prev); // 1 3 6 10 打印4次,因为当 i == 0 时,prev还没有存在
return prev + current
})
console.log(sum1) // 15
let sum2 = arr.reduce((prev, current, i, arr) => {
console.log(prev); // 2 3 5 8 12 打印5次
return prev + current
},2)
console.log(sum2) // 17
//如果传了第二个参数,则会将其当作 i == 0 时的prev
三、索引方法
API | 参数 | 作用 | 返回值 | 备注 |
---|---|---|---|---|
indexOf() | v,i | 查找从第i项开始,第n个等于v的值 | n | 从0开始数 如果没有返回-1 |
lastIndexOf() | v,i | 同上,但从数组的最后往前查找 | n | 同上 |
示例代码
// 新建一个比较规则的数组
let arr = [1, 2, 3, 4, 5]
let sum1 = arr.reduce((prev, current, i, arr) => {
console.log(prev); // 1 3 6 10 打印4次
return prev + current
})
console.log(sum1) // 15
let sum2 = arr.reduce((prev, current, i, arr) => {
console.log(prev); // 2 3 5 8 12 打印5次
return prev + current
},2)
console.log(sum2) // 17