Javascript - 循环遍历稀疏数组并替换稀疏值

时间:2016-01-27 22:00:07

标签: javascript arrays

我正在尝试遍历稀疏数组并使用值填充稀疏元素。

['foo', 'bar', , , ,].map(el => el || 'default') //返回["foo", "bar", undefined × 3]

我将如何返回["foo", "bar", "default", "default", "default", "default"]

3 个答案:

答案 0 :(得分:3)

由于.map(以及.forEach)将跳过稀疏值,除了使用循环之外没有其他选项,但您应该明确检查是否缺少缺失的密钥

for (var i = 0, n = a.length; i < n; ++i) {
    if (!(i in a)) {       // explicit check for missing sparse value
        a[i] = "default";
    }
}

答案 1 :(得分:2)

只需使用for循环:

position:relative

答案 2 :(得分:1)

这应该这样做:

function Fill(n, _default) {
  return Array.apply(null,n).map(function(val) {
    return val || _default;
  });
}
var newa = Fill(myarray, "default");
console.log(JSON.stringify(newa));

显示在这里工作:https://jsfiddle.net/6vqsztxg/