a.push()在数组中为其添加值

what does a.push() adds value to in an array?

本文关键字:添加 数组 push      更新时间:2023-09-26

我的问题是,如果在javascript中,我创建一个数组a = [2, 3, 4, 5],键入a[5] = 10,然后键入a.push(5),那么编译器是在数组末尾还是在第一个未定义的点上添加5?

我发现它添加到数组的末尾,即a[6] == 5。但我的问题是编译器如何发现一个数组是否已经结束?当然,如果它识别了一个未识别的值,它就不能决定数组已经结束,因为数组将在值5之后结束。那么,它怎么知道数组已经结束了呢?

来自MDN的Array.prototype.push():摘要

push()方法将一个或多个元素添加到数组的末尾,并返回数组的新长度。

它知道结束在哪里,因为数组的length在数值上总是大于数组中的最高索引。

var a = [1, 2, 3];
a[49] = 4;
document.write(a.join(" - "));
document.write("<br>");
document.write("Array length: " + a.length);
document.write("<br>");
a.push(5);
document.write("<br>");
document.write(a.join(" - "));
document.write("<br>");
document.write("Array length: " + a.length);

推送操作从a[a.length]开始推送值,这导致数组按N项(在所描述的示例中为1)增长。

长度由使用的最大索引决定,因此在您的示例中,如果最大索引为[5],则6为长度。