前提・実現したいこと
for文の中にfor文をいれる方法しか思いつかず、
データ量が増えた際に処理が重くなってしまうのではないかと思い
スマートな記述方法をご教示願います。
データ
下記2つの配列を条件によって結合させたいです。
■条件
- idが同じ
- 必要なkey, valueだけ取り出す(id, name, age)
javascript
1const arrayA = [ 2 {"id": "1", "name": "a", "hoge": "hoge"}, 3 {"id": "2", "name": "b", "hoge": "hoge"}, 4 {"id": "3", "name": "c", "hoge": "hoge"}, 5 {"id": "4", "name": "d", "hoge": "hoge"}, 6 {"id": "5", "name": "e", "hoge": "hoge"}, 7 {"id": "6", "name": "f", "hoge": "hoge"} 8 ] 9const arrayB = [ 10 {"id": "3", "age": "10"}, 11 {"id": "6", "age": "20"} 12] 13 14 15// expected output: 16// [ 17// {"id": "1", "name": "a", "age": null}, 18// {"id": "2", "name": "b", "age": null}, 19// {"id": "3", "name": "c", "age": "10"}, 20// {"id": "4", "name": "d", "age": null}, 21// {"id": "5", "name": "e", "age": null}, 22// {"id": "6", "name": "f", "age": "20"} 23// ]
ご回答いただけると幸いです。よろしくお願いします。
>スマートな記述方法をご教示願います。
まず自身が思うようにやってみた結果をご提示ください。
なにも提示しないまま作業依頼に近しい内容になってます。
・arrayAのhogeは不要
・ageはarrayBにあればその値、なければnull
という条件ですね?
この質問は
arrayA に arrayB の内容を追加する
arrayB に arrayA の内容を追加する
arrayA と arrayB の内容で arrayC を作成する
どれに該当しますか?
今回結果としては2重ループにはならないと思いますが
相当量が無いと処理が遅くなることはないかと思います
for(var i = 0; i < 10000; i++){
for(var j = 0; j < 10000; j++){
}
}
試してみて下さい。
ご意見・ご協力ありがとうございます。
次回からは具体的に何を試したのか記載していきたいと思います。
質問は編集できるので、いつ来るかわからない次回に回すより、今対応されたほうが良いと思います。
結局のところ他者には質問に書いてあることが全てです。
回答2件
あなたの回答
tips
プレビュー