2017-10-05 1 views
0

Ich möchte ein nicht abgeschlossenes Array füllen. Ich will ein Beispiel zeigen:Fill Array leer

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)

Wie fülle ich diese leere Arrays mit 0?

Vielen Dank!

+1

'füllen [main [i] .id] = 0 '? –

+1

Mögliche Duplikate von [Standard-Array-Werte] (https://stackoverflow.com/questions/2044760/default-array-values) –

Antwort

1

wenn Sie nicht wissen, wie lange das Array ist, würde ich es tun wie diese

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

Vielen Dank Mann! es wirkt wie ein Zauber! – Johnson

1

Beginnen Sie mit einem Array vorgefüllten:

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

Das funktioniert gut Mann, aber diese "ID" kommt dynamisch zu mir, es gibt einen Weg zu füllen die letzte 'fill' var mit Nullen? – Johnson

1

Wenn Sie eine Lösung wollen, dass selbst wenn Sie die maximale Größe des Arrays nicht wissen, arbeitet Sie füllen, Sie können dies am Ende versuchen Sie:

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

Oder in einer ES6 + Umgebung:

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