数组的常用方法
迭代方法
-
map 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
代码如下(示例):
const map = (array, fn) => { let results = [] for (const value of array) { results.push(fn(value)) } return results } let numbers = [1, 2, 3, 4]; let mapResult = map(numbers, (v) => v * v); console.log(mapResult); // [1, 4, 9, 16] -
every 对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
代码如下(示例):
const every = (array, fn) => { let result = true for (const value of array) { result = fn(value) if (!result) { break } } return result } let numbers = [1, 2, 3, 4]; let flag= every (numbers, (v) => v > 2); console.log(flag); // false -
some 对数组中的每一项运行给定函数,如果该函数对任一项都返回true,则返回true。
代码如下(示例):
const some = (array, fn) => { let result = false for (const value of array) { result = fn(value) if (result) { break } } return result } let numbers = [1, 2, 3, 4]; let flag= some (numbers, (v) => v > 2); console.log(flag); // true
归并方法
-
reduce/reduceRight 接收两个参数:一个在每一项上调用的函数和(可选的)作为归并基础的初始值。传入的函数接收4个参数:前一个值,当前值,项的索引和数组对象。
代码如下(示例):
let values = [1, 3, 5, 7, 9]; let sum = values.reduce(function (x, y) { return x + y; }); console.log(sum); // 25
重排序方法
-
sort 字符串根据ASCII码进行排序 Array的sort()方法默认把所有元素先转换为String再排序。
代码如下(示例):
let arr = [10, 20, 1, 2]; arr.sort( (x, y) => { return x - y; }); console.log(arr); // [1, 2, 10, 20]
查找方法
-
find 用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined
代码如下(示例):
// 找到第一个符合条件的元素,返回该成员 let arr = [-5, 4, 1, 2]; let result = arr.find( (n) => n < 0); console.log(result ); // -5 // 没有找到符合条件的元素,返回undefined let values= [3, 4, 1, 2]; let num= values.find( (n) => n < 0); console.log(num); // undefined -
findIndex 返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。 代码如下(示例):
let values = [1, 5, 10, 15] let index = values.findIndex(function(value, index, arr) { return value > 9; }) console.log(index) // 2