如果我尝试使用digit作为属性来创建关联数组,则会自动使用空值插入其他值。
我尝试传递一个字符串(myArray ['myProp']),那个时候数组长度为零。无论我以数字形式传递数字,都是如此。
const myArray = [];
myArray[5] = 'My value'; // say index is 5 here
console.log(myArray.length);
我想知道背后的逻辑是什么。
答案 0 :(得分:3)
那是因为您要在数组中存储索引5的值。
一个对象很可能会成功?
const obj = {};
obj["5"] = "My value";
// { "5": "My value" }
也许是地图?
const myMap = new Map();
myMap.set(5, 'My value');
console.log(myMap.size;) // 1
答案 1 :(得分:1)
myArray[5]
将尝试查看第5个索引,但是它不能跳过0-4
,在这种情况下,它们将被undefined
填充。您可以使用Object.values
给出除undefined
以外的任何内容,并检查其长度
const myArray = [];
myArray[5] = 'My value'; // say index is 5 here
console.log(myArray);
// get everything except undefined
let newArr = Object.values(myArray)
console.log(newArr.length);