2015-11-05 76 views
0

我被告知不要在我的課程中使用推送,因爲我們只允許使用我們已經教過的代碼,這讓我覺得很荒謬。Array.push的替代代碼()函數

我已經寫了超過200行的代碼並多次使用push函數。是否有一個簡單的代碼替代推送功能,我可以實現它?

+0

你可以做'arr [index] ='something'' – Ziki

+0

或者'arr [arr.length] =「別的東西」' – Blindman67

+0

* push *的算法在語言規範中([*§22.1.3.17*](http://ecma-international.org/ecma-262/6.0/index.html#sec-array.prototype.push) )。 – RobG

回答

1

如果您需要推動元素的數組,使用下一個索引:

var arr = []; 
arr[arr.length] = "something"; 
//output: arr = ["something"] 

如果您需要在特定的索引使用添加元素:

var arr = []; 
arr[3] = "something"; 
//output: arr = [undefined,undefined,undefined,"something"] 
+0

由於前三名成員更準確的輸出是[[,,,「something」]'不存在。 – RobG

1

最接近的等效

arr[arr.length] = value; 
+0

* push *也接受多個參數和增量長度(因爲它是一個通用的方法,也適用於非數組對象)。它還會檢查加長陣列的長度<2^53-1,因此可能會比這更接近。 ;-) – RobG

+0

我的回答是基於200行代碼的希望簡單的搜索/替換 - 儘管200行真的變暖了 –