如果我尝试使用digit作为属性创建关联数组,它会使用空值自动插入其他值。
我试过传递一个字符串(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" }
或者也许是地图?
const myMap = new Map();
myMap.set(5, 'My value');
console.log(myMap.size;) // 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);