首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >与javascript array.splice()混淆

与javascript array.splice()混淆
EN

Stack Overflow用户
提问于 2011-09-23 00:06:09
回答 4查看 12.2K关注 0票数 15

我对此真的很困惑。

我的理解是,array.splice(startIndex, deleteLength, insertThing)会将insertThing插入到startIndexsplice()结果中,并删除deleteLength的条目价值?…所以:

代码语言:javascript
运行
复制
var a = [1,2,3,4,5];
var b = a.splice(1, 0, 'foo');
console.log(b);

应该会给我:

代码语言:javascript
运行
复制
[1,'foo',2,3,4,5]

代码语言:javascript
运行
复制
console.log([1,2,3,4,5].splice(2, 0, 'foo'));

应该会给我

代码语言:javascript
运行
复制
[1,2,'foo',3,4,5]

等。

但是由于某种原因,它只给了我一个空数组?看一下:http://jsfiddle.net/trolleymusic/STmbp/3/

谢谢:)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-23 00:08:45

"splice()“函数返回的不是受影响的数组,而是已删除元素的数组。如果不删除任何内容,则结果数组为空。

票数 22
EN

Stack Overflow用户

发布于 2011-09-23 00:10:30

splice()修改源数组并返回已删除项的数组。由于您没有要求删除任何项,因此您将得到一个空数组。它会修改原始数组以插入新项。你有没有看过那是什么?在a中查找您的结果。

代码语言:javascript
运行
复制
var a = [1,2,3,4,5];
var b = a.splice(1, 0, 'foo');
console.log(a);   // [1,'foo',2,3,4,5]
console.log(b);   // []

在jsFiddle的派生中,请在此处查看a中的结果:http://jsfiddle.net/jfriend00/9cHre/

票数 5
EN

Stack Overflow用户

发布于 2011-09-23 00:10:10

array.splice函数拼接一个数组,返回被删除的元素。由于您没有删除任何内容,而只是使用它来插入一个元素,因此它将返回空数组。

我想这就是你想要的。

代码语言:javascript
运行
复制
var a = [1,2,3,4,5]; 
a.splice(1, 0, 'foo'); 
var b = a;
console.log(b); 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7517937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档