前端面试题:js数组方法以及哪些会改变原数组

本文介绍了JavaScript中改变原数组的7种方法:push用于在数组尾部添加元素;pop移除尾部元素;unshift在数组前端添加元素;shift移除首部元素;sort进行排序,可自定义规则;reverse反转数组;splice则具备删除、插入和替换功能。
摘要由CSDN通过智能技术生成

1、push

作用:往数组里面添加元素(尾部添加),返回数组的长度

let arr = [1, 2, 3];
let length = arr.push(4);
console.log(arr); // [1, 2, 3, 4]
console.log(length); // 4

2、pop

作用:从数组中删除最后一个元素(尾部删除),并返回改元素的值

let arr = [1, 2, 3];
let num = arr.pop();
console.log(arr); // [1, 2]
console.log(num); // 3

3、unshift

作用:往数组里添加元素(首部添加)

let arr = [1, 2, 3];
let length = arr.unshift(0);
console.log(arr); // [0, 1, 2, 3]
console.log(length); // 4

4、shift

作用:从数组中删除第一个元素(首部删除),并返回该元素的值

let arr = [1, 2, 3];
let num = arr.shift();
console.log(arr); // [2, 3]
console.log(num); // 1

5、sort

作用:用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的 UTF-16 代码单元值序列时构建的。它返回的就是排序后的数组。

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

注意:

 sort 的默认排序是将元素转化为字符串后排序的,所以有时直接使用sort() 排序结果可能不是我们想要的,想要获得正确的排序结果,我们可以传入一个函数,来规定排序的规则。代码如下:

arr.sort((a, b) => a - b);
console.log(arr); // [1,2,3,4] 

6、reverse

作用:反转数组

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

7、splice

splice方法的作用可以根据参数个数及参数值来确定,具有删除功能、插入功能、替换功能

(1)删除功能:两个参数,第一个参数为要删除的第一项的位置,第二个参数为要删除的项数

let arr = [1, 2, 3, 4];
let arr_del = arr.splice(0, 1); // 删除第一项 [1]
console.log(arr); // [2, 3, 4]

(2)插入功能:三个参数: 插入起始位置、0(要删除的项数)和 要插入的任意数量项

let arr = [1, 2, 3, 4];
let arr_del = arr.splice(0, 0, 5, 6); // 从第一项开始插入,删除0项,所以返回[]
console.log(arr); // [5, 6, 1, 2, 3, 4]

(3)替换功能:三个参数,插入起始位置、要删除的项数(不为0)和 要替换的任意数量项

let arr = [1, 2, 3, 4];
let arr_del = arr.splice(1, 2, 5, 6, 7); // 从第一项开始插入,删除0项,所以返回[]
console.log(arr); // [1, 5,6, 7, 4]

以上七种是会改变原数组的方法  下面的方法不会改变原数组(待更……)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值