javascript - 在 Javascript 中压缩稀疏数组?

标签 javascript arrays sparse-array

我有一个元素数组,其中的条目是稀疏的。我怎样才能轻松地将稀疏数组压缩成密集数组,这样我就不必在每次遍历数据时都检查 null 和 undefined 值?

这是一些示例数据:

var sparse = [];
sparse[1] = undefined;
sparse[5] = 3;
sparse[10] = null;

var dense = sparseToDenseArray(sparse);
// dense should be [3]

最佳答案

在 ES2017 (ES8) 中,这就像 Object.values(sparseArray) 一样简单

例如:

const sparseArray = [, , 'foo', 'bar', , 'baz', ,];
const compactArray = Object.values(sparseArray);
console.log(compactArray);

请注意,此方法仅删除间隙,根据需要向下移动现有数组元素的索引。它不会删除明确设置为 undefinednull 的元素。

关于javascript - 在 Javascript 中压缩稀疏数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11660090/

相关文章:

python - 从 npy 文件加载稀疏数组

javascript - 如何在 JavaScript/Html 中对齐表格单元格

javascript - Angular 错误 : [$compile:tpload] Failed to load template

c# - 如何将字符串添加到 string[] 数组?没有 .Add 功能

java - 在 ArrayList 中的指定索引处添加元素时出错 [Java]

javascript - 处理稀疏数组的 JSON 实现

javascript - D3js - 从特定域的 d3.line() 获取最大值

javascript - Flip Horizo​​ntal CSS 并使用基于 RTL Direction 的 JavaScript 反转它

有人可以解释一下代码是如何工作的吗?

c++ - 如何将 Eigen::SparseMatrix 包装在预先存在的 3 标准压缩行/列数组上