在这个JavaScript中,为什么我没有得到azbc
?为什么调用split和splice会给出空数组?
var x = "a-b-c".split('-').splice(1, 0, 'z');
alert(x.join(''));
split
返回包含a
,b
和c
阵列。
不应该splice
插入z
后a
并给我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(''));
*它返回被删除的元素*,所以没有,也不会被分配到X。分配给x的唯一东西就是任何元素被删除,在这种情况下没有。底线是如果你想拼接一个数组,你必须先将它存储在一个变量中,否则你将失去一个像你所拥有的链式表达式的结果。 –
JavaScript在这里没有区分它自己。 – superluminary