2013-02-26 71 views
6

我有理解拼接的問題,我想幫忙。js。拼接返回刪除項目?

請檢查jsfiddle。

http://jsfiddle.net/fantill/TbpWf/1/

value = "c, a, b" 
value = value.split(',').splice(1, 1).join(',') 
alert(value); 

值應該有回報'c, b'

但是,它返回'a';

這種方法有什麼問題?

非常感謝。

+1

我不知道你在問什麼。是的,'splice'返回刪除的項目,輸出應該是'a',因爲這是你刪除的內容。問題在哪裏? – melpomene 2013-02-26 06:15:29

回答

10

.splice確實返回刪除的項目。但是,它也在內部操作數組。這可以防止你鏈接到.splice;你必須做兩個單獨的呼叫:

value = value.split(','); 
value.splice(1, 1); 
console.log(value.join(',')); 

如果你這樣做value = value.splice(...)value被覆蓋,並且陣列丟失!

+0

非常感謝你!!!!! – Till 2013-02-26 06:18:17

6

.splice是原地的,所以只是刪除value =,它會修改數組像你期望:

> var value = "c, a, b"; 
> value = value.split(', '); 
["c", "a", "b"] 
> value.splice(1, 1); 
["a"] 
> value 
["c", "b"] 
+0

非常感謝你! – Till 2013-02-26 06:17:51

2
var a = ["1","2","3"] 
a.splice(1,1) && a 
a=["1","3"] 
+4

雖然這可能會回答這個問題,但一些意見和/或解釋會很好。這也會幫助其他用戶。 – VDWWD 2017-07-02 14:32:51