【问题标题】:Fill Array empty填充数组为空
【发布时间】:2017-10-05 15:50:23
【问题描述】:

我想填充一个未完成的数组。我举个例子:

var main = [
{ "id":"0", "value":500 },
{ "id":"3", "value":300 }
]

var fill = []


for (i = 0 ; i < main.length; i++){
    fill[main[i].id] = main[i].value
}

console.log(fill)

如何用0 填充这些空数组?

谢谢!

【问题讨论】:

标签: javascript


【解决方案1】:

如果你不知道数组有多长,我会这样做

 var main = [
{ "id":"0", "value":500 },
{ "id":"3", "value":300 }
]

var fill = []
for (var i = 0 ; i < main.length; i++){
    fill[main[i].id] = main[i].value
}
for (var j = 0 ; j < fill.length; j++){
    if(fill[j] === undefined){
        fill[j] = 0
    }
}
console.log(fill)

【讨论】:

    【解决方案2】:

    从一个预填充的数组开始:

    var main = [
    { "id":"0", "value":500 },
    { "id":"3", "value":300 }
    ]
    
    var fill = new Array(4).fill(0);
    
    
    for (i = 0 ; i < main.length; i++){
        fill[main[i].id] = main[i].value
    }
    
    console.log(fill)

    【讨论】:

    • 这很好用,但是这个“id”是动态出现的,有办法用零填充最后的fill var?
    【解决方案3】:

    如果您想要一个即使您不知道要填充的数组的最大大小也能正常工作的解决方案,您可以尝试在最后添加:

    fill.map(function (el) {
      return el === undefined ? 0 : el; 
    });
    

    或者在 ES6+ 环境中:

    fill.map(el => el === undefined ? 0 : el);
    

    【讨论】:

      猜你喜欢
      • 2019-02-13
      • 1970-01-01
      • 2014-11-20
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 2019-07-12
      • 2016-12-04
      相关资源
      最近更新 更多