数组API
sort ——排序
sort()
可以对当前数组进行排序,它会直接修改数组的位置而不是生成一个新数组
功能:自动排序,默认是按Unicode升序排列,sort()
函数会接收一个比较函数作为参数
let a = [4,3,2,1]
let b = a.sort((x,y) => {
console.log(`x=${x},y=${y}`)
return x-y
})
console.log(b) //[1, 2, 3, 4]
解析:比较函数有两个参数,当函数返回值大于0,两数位置交换;当函数返回值小于或等于0,两数位置不变
reverse ——倒序
reverse()
会反转整个数组的元素顺序
let a = [4,3,2,1]
console.log(a.reverse()) //[1, 2, 3, 4]
join ——拼接成字符串
join()
可以把数组的元素用指定字符串连接起来,然后返回连接后的字符串
let a = [4,3,2,1]
console.log(a.join('--')) // 4--3--2--1
concat ——拼接数组
concat()
方法把当前数组和另一个数组连接起来,并返回一个新的数组
concat()
方法可以把数组拆开添加到新的数组里,但对多层嵌套的数组无效
let a = [4,3,2,1]
console.log(a.concat('a','b','c')) // [4, 3, 2, 1, "a", "b", "c"]
console.log(a.concat('a',['b','c'])) // [4, 3, 2, 1, "a", "b", "c"]
console.log(a.concat('a',['b','c',['d']])) //[4, 3, 2, 1, "a", "b", "c", ['d']]
filter —— 过滤
filter()
对数组中每一项运行给定的函数,返回满足条件的项,组成新的数组
let a = [4,3,2,1]
let aFilter = a.filter((item)=>{
return item > 2
})
console.log(aFilter) // [4, 3]
fill ——填充
fill()
用一个固定值填充一个数组中从起始索引到起始索引内的全部元素。不包括终止索引
array.fill(填充值, 起始索引, 起始索引)
map —— 返回函数调用结果的数组。
map()
对数组中的每一项运行给定函数,返回每次函数调用的结果组成数组。
let a = [4,3,2,1]
let aMap = a.map((item,index)=>{
return [item,index]
})
console.log(aMap) //[[4, 0], [3, 1], [2, 2], [1, 3]]
every
判断数组中每一项都是否都为true
,只有所有项都为true
结果才会返回true
,否则返回false
let a = [4,3,2,1]
let aEvery = a.every((item, index)=>{
return item > 0
})
console.log(aEvery) // true
some
数组中只要有一项为true
,则返回true
let a = [4,3,2,1]
let aSome = a.some((item, index)=>{
return item > 3
})
console.log(aSome) //true
forEach ——遍历
对数组进行遍历循环,对数组中每一项运行给定函数
let a = [4,3,2,1]
let aForEach = a.forEach((item, index)=>{
console.log(item);
})
console.log(aForEach)
slice ——截取
slice()
截取数组的部分元素,然后返回一个新的数组
slice(参数1(起始索引),参数2(结束索引))
用法:
- 第一个参数为起始索引,第二个参数为结束索引,
- 截取内容包括起始索引对应的值,不包括结束索引对应的值
- 只传入一个参数时,这个参数为起始索引,截取至数组最后一个
- 不传入参数时,截取整个数组
let a = [4,3,2,1]
console.log(a.slice(1, 3)) // [3, 2]
console.log(a.slice(1)) // [3, 2, 1]
console.log(a.slice()) // [4, 3, 2, 1]
splice ——增、删、改
splice()
实现对数组指定的索引开始删除元素,然后再从该位置添加元素
splice(参数1(起始索引),参数2(要删除的项数),参数3(要插入的项)
用法:
- 删除项包括起始索引对应的值
let a = [4,3,2,1]
a.splice(1,2) // 删除[3,2]
console.log(a) // [4,1]
a.splice(1,0,3) //在索引 1 的位置删除0项,插入数字3
console.log(a) // [4,3,1]
a.splice(2,1,3) //在索引 2 的位置删除1项,插入数字3
console.log(a) //[4,3,3]
a.splice(0) //清空数组
console.log(a) //[]
indexOf ——返回索引
indexOf()
可以搜索指定元素的索引值
let a = [4,3,2,1]
console.log(a.indexOf(3)) // 1