js中数组concat(),slice(),splice(),fill()汇总

1- concat()

concat()可以基于当前数组得所有项创建一个新数组。具体来说,这个方法会创造当前数组的一个副本,然后将接收到的参数添加到这个数组的副本,最后返回新的数组。

如果concat中没有传递参数,它只是复制当前数组并返回副本

let a = [1,2,3,4];

let b = a.concat();

console.log(b);     //  [ 1, 2, 3, 4 ]

如果传递给concat的是一个/多个数组,concat会将这些数组中的每一项都添加到结果数组中,并返回

let a = [1,2,3,4];

let b = a.concat([5,6],[7,8,[9,0]],'a');

console.log(b);     //  [ 1, 2, 3, 4, 5, 6, 7, 8, [ 9, 0 ], 'a' ]

如果传递给concat的不是数组,concat会将这些值都添加到结果数组中,并返回

let a = [1,2,3,4];

let b = a.concat(5,6,7,8);

console.log(b);     //  [ 1, 2, 3, 4, 5, 6, 7, 8 ]

2- slice()

slice()会基于当前数组的一项/多项创建一个新数组,并返回,但不会影响原始数组。

此方法字符串也可用:

Array.prototype.slice()
String.prototype.slice()

如果slice()只有一个参数,则返回从参数指定位置到当前数组末尾的所有项。

let a = [1,2,3,4];

let b = a.slice(1);

console.log(b);     // [ 2, 3, 4 ]

console.log(a);     // [ 1, 2, 3, 4 ]   原数组不受影响

如果slice()有2个参数,则会返回从起始位置到结束位置之间的项,但不包括结束位置的项

let a = [1,2,3,4];

let b = a.slice(1,3);

console.log(b);     // [ 2, 3 ]

console.log(a);     // [ 1, 2, 3, 4 ]

如果slice()参数是负数,则用数组长度加上该参数确定位置

let a = [1,2,3,4];

let b = a.slice(-2,-1);

console.log(b);     // [ 3 ]

console.log(a);     // [ 1, 2, 3, 4 ]

如果slice()参数结束位置小于起始位置,则返回空数组

let a = [1,2,3,4];

let b = a.slice(-1,-2);

console.log(b);     // []空数组


let a = [1,2,3,4];

let b = a.slice(-1,1);

console.log(b);     // []空数组

3- splice()

最强大的数组方法 可以用来删除,插入,替换…返回对应的新数组,并且原始数组会受影响

splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。

删除

返回值:被删除的项

这时只需要指定2个参数:要删除的第一项的位置和要删除的项数

let a = [1,2,3,4];

let b = a.splice(0,2);

console.log(b);     // [1,2]

console.log(a);     // [3,4] 原始数组改变

插入

返回值:空数组

这时需要指定3个参数:起始位置,0(要删除的项数),要插入的项(可多个)

let a = [1,2,3,4];

let b = a.splice(1,0,5);

console.log(b);     // [] 返回空数组

console.log(a);     // 原始数组变为 [ 1, 5, 2, 3, 4 ]
let a = [1,2,3,4];

let b = a.splice(1,0,5,6,7);

console.log(b);     // [] 返回空数组

console.log(a);     // [ 1, 5, 6, 7, 2, 3, 4 ]

替换

返回值:被替换的项

这时需要指定3个参数:起始位置,要删除的项数,要插入的项(可多个)

let a = [1,2,3,4];

let b = a.splice(2,1,'hello');

console.log(b);     // 返回被替换的项 [ 3 ]

console.log(a);     // [ 1, 2, 'hello', 4 ]
let a = [1,2,3,4];

let b = a.splice(2,2,'hello');

console.log(b);     // 返回被替换的项 [ 3, 4 ]

console.log(a);     // [ 1, 2, 'hello' ]

4. ES6中数组新增fill()方法:

fill() 方法用于将一个固定值替换数组的元素。

array.fill(value, start, end);
let arr = ['hello','world','php'];

arr.fill('java',2,3);

console.log(arr)    //[ 'hello', 'world', 'java' ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值