js六种给数组追加元素的方法,你想得到几种? 您所在的位置:网站首页 数组添加方法 js六种给数组追加元素的方法,你想得到几种?

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

2024-07-16 16:51| 来源: 网络整理| 查看: 265

现在有一个数组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']


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有