在这个JavaScript中,为什么我没有得到azbc?
var x = "a-b-c".split('-').splice(1, 0, 'z');
alert(x.join(''));
Run Code Online (Sandbox Code Playgroud)
split返回包含一个数组a,b和c.
不应该splice插入z后a给我azbc?
为什么我得到一个空数组?
注意:我知道我想要的东西可以通过以下方式完成:
var x = "a-b-c".split('-')
x.splice(1, 0, 'z');
alert(x.join(''));
Run Code Online (Sandbox Code Playgroud)
因为splice"修改"原始数组本身.不应该对其进行修改{a,b,c}来{a,z,b,c},然后被分配到x?
得到它......下面的代码帮助我理解.
var x = "a-b-c".split('-')
x = x.splice(1, 0, 'z');
alert(x.join(''));
Run Code Online (Sandbox Code Playgroud)
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"]
Run Code Online (Sandbox Code Playgroud)