2017-10-05 217 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);