3

遇到了这段代码,它让我摸不着头脑,想知道他们抓住长度来设置索引的好处。

var thisarray = new Array();

    function addtoArray(int){
        thisarray[thisarray.length] = int;
    }

在array.push

 function addtoArray(int){
        thisarray.push(int)
    }

另外,是否有与此 php 等效的

thisarray[]
4

2 回答 2

4

在您发布的示例中,两种用途是相同的。两者都将一个新元素附加到数组的末尾。

但是,该push()方法可以采用多个参数,因此您可以在一个语句中将多个元素附加到数组的末尾。push()然后返回数组的新长度。push()也更短,可以说更容易阅读。

要考虑的另一件事是,如果thisarray定义不正确(即它不是 Array 对象),那么thisarray[thisarray.length] = int;很可能会静默失败,因为.length将只是undefined. 而thisarray.push(int)将因可捕获的 TypeError 异常而失败。

关于 PHP 的thisarray[](方括号)语法。就语法而言,JavaScript 中没有什么完全相同的。但是,thisarray[thisarray.length] = int;执行相同的操作。

于 2013-07-09T15:43:19.057 回答
2

thisarray[thisarraylength] = int并且thisarray.push(int)是相同的。可以说,后者相对于前者的唯一优势是可读性。

您可能还会发现这个问题的答案很有用:为什么 array.push 有时比 array[n] = value 更快?

于 2013-07-09T15:41:09.747 回答