为什么调用 split 和 splice 会给出空数组
why calling split and splice gives empty array?
在这个JavaScript中,我为什么没有得到azbc
?
var x = "a-b-c".split('-').splice(1, 0, 'z');
alert(x.join(''));
split
返回一个包含 a
、 b
和 c
的数组。
splice
不应该在a
后插入z
并给我azbc
吗?
为什么我得到一个空数组?
注意:我知道我想要的可以通过以下方式实现:
var x = "a-b-c".split('-')
x.splice(1, 0, 'z');
alert(x.join(''));
因为它不应该splice
"修改"原始数组本身。 它不应该修改{a,b,c}
{a,z,b,c}
然后分配给x
吗?
明白了。。。下面的代码帮助我理解。
var x = "a-b-c".split('-')
x = x.splice(1, 0, 'z');
alert(x.join(''));
splice
返回数组中移除的项目,而不是新数组:
> x = 'a-b-c'.split('-');
["a", "b", "c"]
> x.splice(1,0,'z');
[]
> x
["a", "z", "b", "c"]
> x.splice(1,1,'x');
["z"]
> x
["a", "x", "b", "c"]
就像Paolo说的,拼接会修改数组,http://jsfiddle.net/k9tMW/
var array = "a-b-c".split('-');
array.splice(1, 0, 'z');
alert(array.join(''));
Mozilla Developer Network-Array splice Method - 更改数组的内容,添加新元素,同时删除旧元素。
返回 -包含已删除元素的数组。如果只删除一个元素,则返回一个元素的数组。
var x = "a-b-c".split('-');
x.splice(1, 0, 'z');
document.write(x + "<br />");
你必须这样做,
var x = "a-b-c".split('-');
x.splice(1, 0, 'z');
alert(x.join(''));
相关文章:
- javascript从数组中删除项,splice
- .splice 方法未删除 d3 中数组中的正确项
- 对象数组上的 JS .splice()
- 为什么调用 split 和 splice 会给出空数组
- 数组不会分裂(使用 splice(0))
- .splice() - 如何保护 oryginal 数组
- 使用splice-JavaScript移除一个元素后,移动数组中的所有元素
- 可以使用Array.splice()通过在数组最后一个元素之外的索引处添加元素来创建稀疏数组吗
- javascript array.splice()不会删除数组中的元素
- 在.splice()之后重置角度函数中数组的副本
- 为什么splice不能填充javascript数组上的漏洞
- Splice()不更新knockout.js中数组的项顺序
- JavaScript splice()方法如果splice()的第一个参数为-1,则删除数组的最后一项
- 在Javascript中使用splice删除对象数组中某个位置后的所有元素
- 在Angular数组上使用splice()时,jQuery选择器跳转到下一项
- Splice方法不从数组中删除项
- Splice没有从数组中移除项目
- 使用split、splice获取数组中玩家的姓氏
- .splice()不会完全缩短我的数组
- JavaScript splice()方法不删除数组中时间项是半个小时