map()
map()
函数把每个元素依次作用于传入的函数。如把[1, 2, 3, 4]
中的每个元素变成平方,即[1, 4, 9, 16]
,实现如下:
var arr = [1, 2, 3, 4]
var result = arr.map(x => x * x)
console.log(result) // [1, 4, 9, 16]
reduce()
reduce()
函数把传入的函数连续作用于array的每个元素。如求[1, 2, 3, 4]
中所有元素的累积,实现如下:
var arr = [1, 2, 3, 4]
var result = arr.reduce((x, y) => x * y)
console.log(result) // 24
利用map+reduce可以实现把String'12345'
转换成Number12345
。点击查看实现方法
filter()
filter()
可以过滤掉array中不必要的元素。如去掉[1, 2, 3, 1, 2, 3]
中重复的元素,实现如下:
var arr = [1, 2, 3, 1, 2, 3]
var result = arr.filter(function(element, index, self){
return self.indexOf(element) === index
})
console.log(result) // [1, 2, 3]
利用Set()
也可以实现array去重的目的,实现如下:
var arr = [1, 2, 3, 1, 2, 3]
// arr转set
var set = new Set(arr)
// set转arr
var result = Array.from(set)
console.log(result) // [1, 2, 3]
sort()
sort()
函数用于排序,默认是把传入的参数当字符串处理。如对[10, 1, 2, 20]
进行升序处理,实现如下:
var arr = [10, 1, 2, 20]
var result = arr.sort((x ,y) => x - y)
console.log(result) // [1, 2, 10, 20]
every()
every()
函数判断array的所有元素是否满足测试条件,如判断[1, 2, -1, 5]
中的元素是否都大于0
,实现如下:
var arr = [1, 2, -1, 5]
var result = arr.every(x => x > 0)
console.log(result) // false
find() 与 findIndex() 与 indexOf()
find()
函数用于查找符合条件的第一个元素,如找到则返回元素,否则返回undefined,示例如下:
var arr = [1, 2, 5, 4, 9]
var result = arr.find(function(n) {
return n > 6
})
console.log(result) // 9
findIndex()
函数用于查找符合条件的第一个元素,如找到则返回元素的索引,否则返回-1,示例如下:
var arr = [1, 2, 5, 4, 9]
var result = arr.findIndex(function(n) {
return n > 6
})
console.log(result) // 4
indexOf()
函数用于查询array中是否存在指定的元素,若存在则返回索引,否则返回-1,示例如下:
var arr = [1, 2, 5, 4, 9]
var result = arr.indexOf(2)
console.log(result) // 1
findIndex()
与indexOf()
的区别是:findIndex()
的参数为函数 ,indexOf()
的参数为对象本身
forEach()
forEach()
函数用于遍历array,示例如下:
var arr = [1, 2, 5, 4, 9]
arr.forEach(console.log)
// 1
// 2
// 5
// 4
// 9