2013-03-28 70 views
1

在我的代碼,我有很多這樣的代碼:引用Javascript中數組的最後一個元素?

my_array[my_array.length - 1] = sth; 

是否有可能定義一個簡單的變量指向數組的最後一個元素是這樣的:

var ref = (&|*, sth like that) my_array[my_array.length - 1]; 
ref = sth; 
+0

是你的目標,以取代數組的最後一個元素? – OJay 2013-03-28 02:11:09

+0

是的,很多重複'my_array [my_array.length - 1]',有種聲音 – nfpyfzyf 2013-03-28 02:12:57

+1

splice()爲你工作?,負指數即my_array.splice(-1,1,sth) – OJay 2013-03-28 02:14:49

回答

5

您將有改變陣列的原型,並使用它如下:

var arr = ['a','b','c']; 

Array.prototype.last=function() { 
    if(this.length >= 1) { 
     return this[this.length - 1]; 
    } 
    else { 
     return null; 
    } 
}; 

arr.last(); 

說笑的工作 - 你可以在Chrome JS控制檯中查看它。

+0

+1 Was即將建議相同的事情。 – Guffa 2013-03-28 02:13:19

+0

是的 - 我認爲這是實現這一目標的最佳途徑。 – Karol 2013-03-28 02:14:33

+1

另一個有趣的技巧是使用'var ref = Array.prototype.last.bind(arr)'將函數綁定到一個實例,所以你不必傳遞數組,只是一個返回的綁定函數所需數組的最後一項。 – 2013-03-28 02:16:04

相關問題