簡體   English   中英

為什么調用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返回一個包含abc的數組。

不應splice插入za ,給我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說的那樣,splice修改了數組到位http://jsfiddle.net/k9tMW/

var array = "a-b-c".split('-');
array.splice(1, 0, 'z');
alert(array.join(''));

Mozilla Developer Network-Array拼接方法 - 更改數組的內容,在刪除舊元素時添加新元素。

返回 - 包含已刪除元素的數組。 如果僅刪除一個元素,則返回一個元素的數組。

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(''));​

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM