码迷,mamicode.com
首页 > 编程语言 > 详细

javascript : splice(0) 的妙用

时间:2018-12-18 23:17:42      阅读:1593      评论:0      收藏:0      [点我收藏+]

标签:拷贝   over   有意思   新项目   tab   rip   col   今天   push   

今天看前同事的代码,有个写法很有意思: splice(0)。

有意思的是,这并不是一个“合法”的写法。

 

w3school是这样写的:

arrayObject.splice(index,howmany,item1,.....,itemX)
参数描述
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。

index和howmany都是必须的,但似乎只写index也可以...

那么,到底 splice(0) 会怎么样呢?

 

stackoverflow 上有个问题很有意思。

有个人说,我想把数组A的东西拷贝到数组B,结果数组A怎么就没了?

var ArrayA = [];
var ArrayB = [];

ArrayA.push(1);
ArrayA.push(2);

ArrayB = ArrayA.splice(0);

alert(ArrayA.length);

没错 splice() 会修改原数组,而 splice(0) 会把原数组清空。

var a = [1,2,3,4,5]
   ,b = a.splice(0);
//=> a = [], b = [1,2,3,4,5]

那怎么解答这个人的问题?

很简单,用 slice() 就可以了。slice() 不会改变原数组。

var a = [1,2,3,4,5]
   ,b = a.slice();
//=> a = [1,2,3,4,5], b = [1,2,3,4,5]

 

javascript : splice(0) 的妙用

标签:拷贝   over   有意思   新项目   tab   rip   col   今天   push   

原文地址:https://www.cnblogs.com/foxcharon/p/10140685.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!