我正在尝试遍历稀疏数组并使用值填充稀疏元素。
['foo', 'bar', , , ,].map(el => el || 'default')
//返回["foo", "bar", undefined × 3]
我将如何返回["foo", "bar", "default", "default", "default", "default"]
答案 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/