javascript - 计算稀疏数组中定义元素的更好方法?
问题描述
考虑以下打字稿:
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 仅迭代已定义的元素。
似乎应该有更好的方法来做到这一点,但我只是不知道正确的方法。
解决方案
您可以使用以下示例myArray.filter(v => v !== undefined).length
。肯定会有更多的解决方案。
推荐阅读
- python - 为什么我不能更改全局值?“UnboundLocalError”
- python-3.x - 在lxml Python 3中如何递归地所有链接的ID
- c# - 通过 BufferBlock 的背压不起作用。(C# TPL 数据流)
- delphi - 将泛型 TArray 转换为 varArray
- websocket - JMeter - 使用交替的二进制和文本帧处理 websocket 响应
- java - 创建直接访问对象java字符串的方法
- javascript - javascript函数返回不带分号
- reactjs - 如何在 React 中使用animejs?
- java - 无法创建转换器 RuntimeException 的实例
- c - 从头开始删除链表中的节点