在這個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