Js数组 API简述
1.pop()尾部出栈,弹出数组中最后一个元素,并返回这个元素
let arr = [1,2,3,4,5,6,4,7]`
console.log('pop():'+arr.pop())
2.push,尾部入栈
arr.push(7,8,9)
console.log('push():'+arr)
3.shift弹出数组的第一个元素,并返回这个元素
let result = arr.shift()
console.log('shiift():'+result)
4.unshift():在数组开头添加一个或多个元素,并返回新的长度
arr.unshift(-1,0)
console.log('unshif():'+arr)
5.splice(x,n,…):从x位置开始截取,截取n个并返回被截取的元素,第三个参数是截取完了需要添加哪些元素,从x的位置开始添加,从数组的第1位开始截取,截取3位并返回,再从第1位开始添加‘x’‘y’‘z’
let res = arr.splice(0,1)
截取第0个元素,删除arr中第0个元素
console.log(res)
let result1 = arr.splice(1,3,'x','y','z')
console.log('当前数组'+arr)
console.log('被截取元素:'+result1)
6…reverse():逆转数组的顺序
console.log('逆序结果'+arr.reverse())
7.sort排序
let array = [1,2,7,3,4,5,6]
console.log('sort从小到大排序结果:'+array.sort())
sort还可以接受一个函数作为参赛,该函数接受两个参数 a,b
如果a < b就返回一个负数,a就排在b的前面
如果a === b就返回0,顺序不变
如果a > b就返回一个正数,a就排在b的后面
let arr = [1,6,4,3,5,2]
arr.sort((a, b) => {
if (a < b) {
return -1
}else if (a === b) {
return 0
}else{
return 1
}
})
console.log(arr) // [1, 2, 3, 4, 5, 6]
可以简写为
let arr = [1,6,4,3,5,2]
arr.sort((a, b) => a - b)
console.log(arr) // [1, 2, 3, 4, 5, 6]
同理,返回b - a就可以倒序排列
let arr = [1,6,4,3,5,2]
arr.sort((a, b) => b - a)
console.log(arr) // [6, 5, 4, 3, 2, 1]
8.concat() 返回一个新数组,把传入的数组,或者元素+数组合并成一个新的数组,返回这个新数组
let arr = [1,2,3]
let arr2 = [4,5,6]
let newArr = arr.concat(arr2)
console.log(newArr) // [1, 2, 3, 4, 5, 6]
9.slice():截取数组,不会改变原数组,返回一个新数组
从数组的第0位截取到数组的第3位
let arr = [1,2,3,4,5,6]
let result = arr.slice(0,3)
console.log(result) // [1, 2, 3]
如果不给第二个参数,那么就从第1个参数的位置截取到数组的最后
let arr = [1,2,3,4,5,6]
let result = arr.slice(3)
console.log(result) // [4, 5, 6]
10.join():把数组中的元素连接成一个字符串并返回,不会改变原数组
可以选择用什么作为分隔符,空字符串就代表没有分隔符
let arr = [1,2,3,4,5,6]
let result = arr.join('')
console.log(arr) // [1, 2, 3, 4, 5, 6]
console.log(result) // '123456'
11.indexOf():查找元素在数组中第一次出现时的索引,如果没有就返回-1
let arr = [1,2,3,4,5,6,1,2,3,4,5,6]
let result = arr.indexOf(3)
console.log(result) // 2
12.LastIndexOf():查找元素在数组中最后一次出现时的索引,如果没有就返回-1
let arr = [1,2,3,4,5,6,1,2,3,4,5,6]
let result = arr.indexOf(3)
console.log(result) // 8
数组遍历方法
13.forEarm():传入一个函数,把数组的每一项作为函数的参数被调用,不改变原数组
let arr = [1, 2, 3, 4, 5, 6];
arr.forEach((item) => {
console.log(item) // 依次输出1到6
});
14.map():传入一个函数,把数组的每一项作为函数的参数被调用,然后用函数每次的返回值组成新的数组并返回,不改变原数组
let arr = [1, 2, 3, 4, 5, 6];
let newArr = arr.map((item) => item*item); // 箭头函数的简写,不用写return
console.log(arr) // [1, 2, 3, 4, 5, 6]
console.log(newArr) // [1, 4, 9, 16, 25, 36]
15.filter():传入一个函数,把数组的每一项作为函数的参数被调用,在函数内部判断符合条件的每一项,把它们组成新的数组并返回,不改变原数组
let arr = [1, 2, 3, 4, 5, 6];
let newArr = arr.filter((item) => item%2 === 0); // 取数组中的偶数
console.log(arr) // [1, 2, 3, 4, 5, 6]
console.log(newArr) // [2, 4, 6]
16.reduce():接受两个参数,函数和初始值,其中函数接受两个参数,那个初始值和数组的每一项,每次用初始值对数组的每一项进行操作并返回这个新的初始值(函数返回),不改变原数组
初始值为0,sum代表了初始值,每次用sum+= item,最后初始值为21并被返回(reduce返回)
let arr = [1, 2, 3, 4, 5, 6];
let result = arr.reduce((sum, item) => sum+=item,0);
console.log(arr) // [1, 2, 3, 4, 5, 6]
console.log(result) // 21