2015-11-05 80 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行真的变暖了 –