首页 > 解决方案 > 计算稀疏数组中定义元素的更好方法?

问题描述

考虑以下打字稿:

const myArray: Array<string> = new Array();
myArray[5] = 'hello';
myArray[7] = 'world';

const len = myArray.length;
let totalLen = 0;
myArray.forEach( arr => totalLen++);
console.log('Total elements in the array: ' + len.toString(10));
console.log('Total defined elements in the array: ' + totalLen.toString(10));

输出:

Total elements in the array: 8
Total defined elements in the array: 2

我需要将数据插入到任意索引处的数组中,这会创建未定义的数组元素。然后我需要检查数组中已定义元素的总数。.length 包括未定义的元素,但 .forEach 仅迭代已定义的元素。

似乎应该有更好的方法来做到这一点,但我只是不知道正确的方法。

标签: javascriptarraystypescript

解决方案


您可以使用以下示例myArray.filter(v => v !== undefined).length。肯定会有更多的解决方案。


推荐阅读