javascript - 为什么在 javascript 数组中自动创建索引?

标签 javascript arrays object associative-array

如果我尝试使用数字作为属性创建关联数组,它会自动插入其他具有空值的值。

我尝试传递一个字符串 (myArray['myProp']),当时数组长度为零。只有当我传递数字时才会发生这种情况,无论是字符串形式。

const myArray = [];
myArray[5] = 'My value'; // say index is 5 here
console.log(myArray.length); 

我想知道这背后的逻辑是什么。

最佳答案

那是因为您要在数组中存储一个索引为 5 的值。

一个对象最有可能做到这一点?

const obj = {};
obj["5"] = "My value";
// { "5": "My value" }

或者 map ?

const myMap = new Map();
myMap.set(5, 'My value');
console.log(myMap.size;) // 1

关于javascript - 为什么在 javascript 数组中自动创建索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55645400/

相关文章:

javascript - 用于对象数据加载的 removeEventListener

javascript - 在 JavaScript 中使用对象的哈希表功能

javascript - AngularJS 依次执行 promise

python - 将 argsort 与掩码相结合以在移动窗口中获取最接近的值

c - 如何在 C 中使用外部 union 数组?

c++ - 在条件 C++ 语句中创建对象

javascript - 为什么我可以将命名属性添加到数组中,就好像它是一个对象一样?

javascript - 如何在 Windows 8/IE10 中将 HTML/Javascript 中的图像或对象旋转 90°?

javascript - 用于检测不存在对象中的 JSON 属性的函数

c++ - 在 C++ 中从文本文件读取输入到数组