在这段 JavaScript 中,为什么我没有得到 azbc
?
var x = "a-b-c".split('-').splice(1, 0, 'z');
alert(x.join(''));
split
返回包含a
、b
和c
的数组。
不应该拼接
在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"]
关于javascript - 为什么调用 split 和 splice 会给出空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845075/