2016-05-16 62 views
0

我試圖鏈接一個Array對象的方法,但它不會讓我。簡單的JavaScript方法鏈接

var arr = [1,2,3]; 
arr.splice(-3, 1, 'foot').splice(arr.length,0, 'hand'); 
console.log(arr) // ['foot', 2, 3] 

//trying to get ['foot', 2, 3, 'hand'] 

這是行不通的。我必須把第二個splice分成一個新的陳述。爲什麼這不起作用?我已經在JavaScript代碼中看到了多次鏈接。

+0

給單手'手' –

回答

2

只是因爲Array.prototype.splice返回一個包含已刪除元素的數組,您可以在其documentation page上找到它。

所以基本上有些方法允許鏈接和一些不要。如果這是您第一次使用它們,您可以參考文檔。

更確切地說,一個數組的大多數方法創建一個新的數組(除了拼接),所以它在技術上並不是鏈接,因爲您不在同一個數組的同一個實例上應用不同的方法。典型的克隆鏈方法是filter,map,find

+0

是否有一個屬性,我可以找到告訴是否數組方法是可鏈接的?或者我應該假設任何返回一個新數組的方法是可鏈接的? – inthenameofmusik

+0

同樣,你可以在任何數組上使用數組方法,所以如果一個方法返回一個數組,那麼你可以「鏈」它。然而,由於它是一個新的數組,它不會總是按照您的期望來做,所以之前閱讀文檔(或者做一些測試)很重要。例如,你鏈接了兩個'splice'調用,但不是你期望的結果。 – floribon