2017-10-05 146 views
0

我要填写一个未完成阵列。我将展示一个例子:填充阵列空

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这些空数组?

谢谢!

+1

'补[主[I] .ID = 0'? –

+1

的可能的复制[默认数组值(https://stackoverflow.com/questions/2044760/default-array-values) –

回答

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) 
+0

非常感谢的人!它就像一个魅力! – Johnson

1

开始预填充阵列:

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)

+0

那效果很好的人,但这个“身份证”到我这里来动态地,有一种方法来填补最后'fill' VAR零的? – Johnson

1

如果你想,即使你不知道你数组将填补的最大尺寸是有效的解决方案,你可以在最后尝试添加此:

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

或者在ES6 +环境:

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