javascript - 如何复制数组行为?

标签 javascript arrays object

我知道 JavaScript 中的数组就是一个对象。 当我这样定义一个数组时:

var array;
array = [ "a", "b", "c" ];

然后运行

Object.keys(array);

我得到以下数组:["0", "1", "2"] . array 的数组长度是3 .

当我添加如下属性时:

array["a"] = "d";

Object.keys()正在返回 ["0", "1", "2", "a"] , 但数组长度为 array还是3 .

但是当我添加这样的属性时:

array["3"] = "d";

array的长度现在是4 .

如果array只是另一个对象,当我像var myArray = {}一样从头开始我的对象时,我怎么能实现这种行为呢? ?

最佳答案

.length 属性仅包括具有数字索引的属性,特别是那些具有大于或等于零的整数值的属性。

如果您询问如何从数组或对象中获取所有 键的总数,那么您可以这样做:

Object.keys(array).length

...因为 Object.keys() 返回一个本身具有 .length 属性的数组。

关于javascript - 如何复制数组行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12091595/

相关文章:

Perl::访问具有 `use strict` 集的对象的成员?

javascript - 在 "Cannot convert undefined or null to object"导航栏中使用 "Collapse"时为 "reactstrap"

javascript - jquery中的动画效果无法正常工作

Javascript getDay 方法返回错误的数字

php - 弹出数组的第一个元素而不是最后一个(反转 array_pop)?

javascript - 重置或清除 Javascript 对象的正确方法?

javascript - 将对象值更改为匹配的映射值

javascript - Jest XMLHttpRequest 模拟请求显示错误

ios - 保存多个选定的 UITableViewCell 值的数组

php - 选择部分 JSON 并检查值是否为空