2017-10-05 10 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

これはうまく動作しますが、この「id」は動的に私に当てはまります。最終的な 'fill'変数は0ですか? – Johnson

1

あなたはあなたがいっぱいになり、アレイの最大サイズがわからない場合でも機能するソリューションをしたい場合は、あなたは最後にこれを追加してみてくださいすることができます

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

またはES6 +環境で:

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