オブジェクトの足りない値を補うアルゴリズムを組みたい
javaScript
1obj1 ={'1':2, '2':4, '4':2, '8':2 , '9':1, '12':1} 2 3obj2 ={'2':2, '4':4, '6':2, '10':2} 4 5obj3 ={'3':2, '4':4, '5':2, '6':2 , '9':1, '11':1, '12':3}
上記のようなオブジェクトがあるとします。
想定するオブジェクトにはいくつか決まりがあり、
・オブジェクトのkeyはユニークである。
・keyは小さい順番に並ぶ
・keyの最大値は12である。
・オブジェクトの中身の数は0~12である。
このような場合の出力結果として
javaScript
1result1 ={'1':2, '2':4, '3':0, '4':2, '5':0, '6':0, '7':0, '8':2, '9':1, '10':0, '11':0, '12':1} 2 3result2 ={'1',0 ,'2':2, '3',0, '4':4, '5':0, '6':2, '7':0, '8':0, '9':0, '10':2, '11':0, '12':0} 4 5result3 ={'1':0, '2':0, '3':2, '4':4, '5':2, '6':2, '7':0, '8':0, '9':1, '10':0, '11':1, '12':3}
このよう与えられたオブジェクトのkeyの値と1~12を比較してkeyの値が見つかれば、valueを返してkeyがない場合は足りないkeyとvalueに0を返すようなアルゴリズムはどのように作成すればいいでしょうか?
###自分で試したこと
TypeScript
1obj = {'11': 2, '12': 1} 2 3const result: any = numbers.map(((number: any) => { 4 var index = 0 5 for (let i = 0; Object.keys(obj).length; i++ ){ 6 if (number.toString() == Object.keys(obj)[index]){ 7 return Object.values(obj)[index] 8 } else { 9 return 0 10 } 11 } 12 index++ 13})) 14 15console.log(result)
//出力結果 result = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0]
このようになってしまって、12の1がなぜか出力されない状況です。
アルゴリズムに詳しい方、ご回答よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー