我对此真的很困惑。
我的理解是,array.splice(startIndex, deleteLength, insertThing)会将insertThing插入到startIndex的splice()结果中,并删除deleteLength的条目价值?…所以:
var a = [1,2,3,4,5];
var b = a.splice(1, 0, 'foo');
console.log(b);应该会给我:
[1,'foo',2,3,4,5]和
console.log([1,2,3,4,5].splice(2, 0, 'foo'));应该会给我
[1,2,'foo',3,4,5]等。
但是由于某种原因,它只给了我一个空数组?看一下:http://jsfiddle.net/trolleymusic/STmbp/3/
谢谢:)
发布于 2011-09-23 00:08:45
"splice()“函数返回的不是受影响的数组,而是已删除元素的数组。如果不删除任何内容,则结果数组为空。
发布于 2011-09-23 00:10:30
splice()修改源数组并返回已删除项的数组。由于您没有要求删除任何项,因此您将得到一个空数组。它会修改原始数组以插入新项。你有没有看过那是什么?在a中查找您的结果。
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/。
发布于 2011-09-23 00:10:10
array.splice函数拼接一个数组,返回被删除的元素。由于您没有删除任何内容,而只是使用它来插入一个元素,因此它将返回空数组。
我想这就是你想要的。
var a = [1,2,3,4,5];
a.splice(1, 0, 'foo');
var b = a;
console.log(b); https://stackoverflow.com/questions/7517937
复制相似问题