js六种给数组追加元素的方法,你想得到几种?

2 篇文章 0 订阅

现在有一个数组arr=[1,2,3,4]
要追加了!

1.push方法

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

push方法会修改原数组,可以带多个参数,都会一起加到数组末尾

2.unshift方法

let arr=[1,2,3,4];
arr.unshift(5);
console.log(arr);
//得到[5,1,2,3,4]

类似push,不过会加到开头

3.length属性

可以直接给length位置赋值

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

数组长度会自动+1

4.splice方法

splice既可以删除数组元素,也可以追加数组元组

arrayObject.splice(index,howmany,item1,…,itemX)
其中,index和howmany是必须,后面的item不是必须的
howmany指的是删除元素的个数,是0则为不删除
index是开始修改的索引位置
item是在index处增加元素的列表

//删除
let arr=[1,2,3,4];
arr.splice(1,1);
console.log(arr);
//得到[1,3,4]
//增加
let arr=[1,2,3,4];
arr.splice(1,0,1.5);
console.log(arr);
//得到[1,1.5,2,3,4]

另外,如果howmany非0的情况下,item不为空,那么会先删掉howmany对应的数组元素,再在index位置追加item

let arr=[1,2,3,4];
arr.splice(1,1,9,9,9);
console.log(arr);
//得到[1,9,9,9,3,4]

5.concat方法

concat方法和push类似,不过会生成新数组,不会修改原数组

let arr = [1,2,3];
console.log(arr.concat(4,5));
//得到[1,2,3,4,5]

也用于数组连接

let arr1 = [1,2,3];
let arr2 = [4,5,6];
console.log(arr1.concat(arr2));
//得到[1,2,3,4,5,6]

6. …

…也就是拓展运算符

let arr1=[1,2,3];
let arr2=[...arr1,4,5];
console.log(arr2);
//得到[1,2,3,4,5]

…不只是用于复制数组,它可以复制一个对象中所有可遍历的属性到一个新对象
比如

let obj1={a:1 , b:2 , d:9};
let obj2={c:2 , d:5 , ...obj1};
console.log(obj2);
//得到{c:2,a:1,b:2,d:9}
//如果有重复的,会被覆盖掉,比如这里的d

这个复制是一种浅拷贝,所以只复制了对象的地址
比如,Symbol也会原封不动的复制过来

const obj1 = {"key":Symbol()};
const obj2 = { ...obj1 };
console.log(obj1==obj2);//false
console.log(obj1["key"]==obj2["key"]);//true

同理:

let obj1={a:{b:"c"}}
let obj2={...obj1};
obj2.a.b="d";
console.log(obj1);
console.log(obj2);
//得到的都是{a:{b:"d"}}
//也就证明了复制的是地址

除此之外,还可以把他和解构赋值结合,比如

let [first,...rest]=[1,2,3,4,5];
console.log(first);//1
console.log(rest);//[2,3,4,5]

这种方法下,…必须在最后,在开头[…rest,first]和在中间[first,…rest,last]都会报错

也可以用这个来拆分字符串

let hello=[..."helloword"];
console.log(hello);
//['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'd']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笨笨2019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值