js 常用数组API

修改原数组的API

pop():弹出数组中最后一个元素,并返回这个元素

let arr = [1,2,3,4,5,6]
let result = arr.pop()
console.log(arr) // [1, 2, 3, 4, 5]
console.log(result) // 6

push():添加一个或多个元素到数组末尾,并返回新的长度

let arr = [1,2,3,4,5,6]
arr.push(7,8)
console.log(arr) // [1, 2, 3, 4, 5, 6, 7, 8]
console.log(arr.length) // 8

shift():弹出数组的第一个元素,并返回这个元素

let arr = [1,2,3,4,5,6]
let result = arr.shift()
console.log(arr) // [2, 3, 4, 5, 6]
console.log(result) // 1

unshift():在数组开头添加一个或多个元素,并返回新的长度

let arr = [1,2,3,4,5,6] 
arr.unshift(-1,0)
console.log(arr) // [-1, 0, 1, 2, 3, 4, 5, 6]
console.log(arr.length) // 8

splice(x,n,...):从x位置开始截取,截取n个并返回被截取的元素,第三个参数是截取完了需要添加哪些元素,从x的位置开始添加

从数组的第1位开始截取,截取3位并返回,再从第1位开始添加‘x’‘y’‘z’

let arr = [1,2,3,4,5,6] 
let result = arr.splice(1,3,'x','y','z')
console.log(arr) // [1, "x", "y", "z", 5, 6]
console.log(result) // [2, 3, 4]

.reverse():逆转数组的顺序

let arr = [1,2,3,4,5,6] 
arr.reverse()
console.log(arr) // [6, 5, 4, 3, 2, 1]

sort():给数组排序(默认从小到大)

let arr = [1,6,4,3,5,2] 
arr.sort() 
console.log(arr) // [1, 2, 3, 4, 5, 6]

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]

返回新数组的API

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]

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]

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'

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

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

数组遍历方法

forEach():传入一个函数,把数组的每一项作为函数的参数被调用,不改变原数组

let arr = [1, 2, 3, 4, 5, 6];
arr.forEach((item) => {
    console.log(item) // 依次输出1到6
});

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]

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]

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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值