JS数组方法最全最详细总结

console.log(newArr1) //[ 1, 2, { a: 1, b: 2 } ]

//综上 省略参数 返回当前数组的浅拷贝

let obj1={a:1}

let obj2={b:2}

let arr = [1, 2, 3,obj1]

let newArr = arr.concat([1,2],obj2,100-1,‘合并数组’,undefined,null)

//数据类型如字符串,数字和布尔(不是String,Number 和 Boolean 对象):

//concat将字符串和数字的值复制到新数组中。

console.log(newArr)

[1,2,3,{ a: 1 },1,2,{ b: 2 },99,‘合并数组’, undefined,null]

obj1.b=3

obj2.a=4

/*

对象引用(而不是实际对象):concat将对象引用复制到新数组中。

原始数组和新数组都引用相同的对象。

也就是说,如果引用的对象被修改,则更改对于新数组和原始数组都是可见的。

这包括也是数组的数组参数的元素。

*/

console.log(newArr)

[1,2,3,{ a: 1, b: 3 },1,2,{ b: 2, a: 4 },99,‘合并数组’,undefined,null]

  • 详解

concat方法创建一个新的数组,它由被调用的对象中的元素组成,每个参数的顺序依次是该参数的元素(如果参数是数组)或参数本身(如果参数不是数组)。它不会递归到嵌套数组参数中。

concat方法不会改变this或任何作为参数提供的数组,而是返回一个浅拷贝,它包含与原始数组相结合的相同元素的副本。 原始数组的元素将复制到新数组中,如下所示:

  • 对象引用(而不是实际对象):concat将对象引用复制到新数组中。 原始数组和新数组都引用相同的对象。 也就是说,如果引用的对象被修改,则更改对于新数组和原始数组都是可见的。 这包括也是数组的数组参数的元素。

  • 数据类型如字符串,数字和布尔(不是String,Number 和 Boolean 对象):concat将字符串和数字的值复制到新数组中

[](()slice()

slice()方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)原始数组不会被改变

返回值新的数组对象

参数 slice(begin,end)

第一个参数 begin

  • 提取起始处的索引(从 0 开始),从该索引开始提取原数组元素。

  • 如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。

  • 如果省略 begin,则 slice 从索引 0 开始。

  • 如果 begin 大于原数组的长度,则会返回空数组。

第二个参数 end

  • 提取终止处的索引(从 0 开始),在该索引处结束提取原数组元素。slice 会提取原数组中索引从 begin 到 end 的所有元素(包含 begin,但不包含 end)。

  • s 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 lice(1,4) 会提取原数组中从第二个元素开始一直到第四个元素的所有元素 (索引为 1, 2, 3的元素)。

  • 如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 slice(-2,-1) 表示抽取了原数组 中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。

  • 如果 end 被省略,则 slice 会一直提取到原数组末尾。

如果 end 大于数组的长度,slice 也会一直提取到原数组末尾。

let arr=[1,2,3,4,5]

//begin 参数

//1.

//如果省略 begin,则 slice 从索引 0 开始。

let newArr1=arr.slice()

console.log(newArr1) //[ 1, 2, 3, 4, 5 ]

//2.

//提取起始处的索引(从 0 开始),从该索引开始提取原数组元素

//如果 end 被省略,则 slice 会一直提取到原数组末尾。

let newArr2=arr.slice(1) //[ 2, 3, 4, 5 ]

console.log(newArr2)

//3.

//如果 begin 大于原数组的长度,则会返回空数组。

let newArr3=arr.slice(6)

console.log(newArr3) //[]

//4.

//如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取

//slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)

let newArr4=arr.slice(-2)

console.log(newArr4) //[ 4, 5 ]

//end 参数

//1.

// 提取终止处的索引(从 0 开始),

// 在该索引处结束提取原数组元素。

// slice 会提取原数组中索引从 begin 到 end 的所有元素(包含 begin,但不包含 end)。

let newArr5=arr.slice(1,2)

console.log(newArr5) //[ 2 ]

//2.

// 如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。

// slice(-2,-1)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值