
2つの配列をキーでマージする方法を教えてください。
例えば、以下のprofeelを主として、personIdで一致するkekkaの情報とマージして
mergeListを作成する方法を教えてください。
var profeel = [
{personId:'1001',nama:'Aさん'},
{personId:'1002',nama:'Bさん'},
{personId:'1004',nama:'Dさん'},
{personId:'1005',nama:'Eさん'}
]
var kekka = [
{personId:1001',scores:['98','100','80']},
{personId:1002',scores:['100','100','55']},
{personId:1003',scores:['35','98','78']},
{personId:1004',scores:['90','99','100']}
]
var mergeList = [
{personId:1001',name:'Aさん',scores:['98','100','80']},
{personId:1002',name:'Bさん',scores:['100','100','55']},
{personId:1004',name:'Dさん',scores:['90','99','100']},
{personId:1005',name:'Eさん'}
]
No.1ベストアンサー
- 回答日時:
こんにちは
mergeListは新しいオブジェクトとして生成しています。
kekkaに同一キーが存在する場合は、そちらの値が採用されます。
同一キーではprofeelを優先したい場合は、profeelを後からコピーすればよいでしょう。
const kekkaP = kekka.map( e=> e.personId );
const mergeList = profeel.map( e=> {
const o = {};
for ( const k in e) o[k] = e[k];
const n = kekkaP.indexOf(e.personId);
if(n>-1) for ( const k in kekka[n]) o[k] = kekka[n][k];
return o;
});
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- 英語 Given that all patients had scores of zero on the 2 2022/05/16 17:44
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript gasについて 1 2022/05/31 21:51
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- Ruby vscode 文字化け 1 2022/05/21 19:17
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javascriptでのbuttonのname属...
-
【jQuery】input nameの文字列...
-
JavaScriptにて動的に配列を作...
-
二つの入力欄に、同時に同じ文...
-
入力フォームに半角スペース以...
-
テキストエリアをenterキーでフ...
-
動的にTabindexの値を変えたい!
-
テキストボックスの値同士を比...
-
ASP.NETでNAME属性を固定にしたい
-
複数のテキストフィールドを同...
-
hiddenを動的に作成したい
-
onClickとsubmitの処理順序
-
<input>の選択肢をプルダウンメ...
-
<JavaScript>tableタグを入力不...
-
プルダウンで選択すると、DBの...
-
【jsp/Java】チェックボックス...
-
ハイパーリンクを別ウインドウ...
-
Visual Studioのデザインでの非...
-
jQuery セレクトボックスで選択...
-
複数のsubmitボタンで押された...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
新しくフォルダを作成したい
-
二つの入力欄に、同時に同じ文...
-
ラジオボタンでクリックした値...
-
テキストボックスの値同士を比...
-
動的にTabindexの値を変えたい!
-
jquery.validate.jsについて
-
Javascriptでのbuttonのname属...
-
複数のテキストフィールドを同...
-
ファイル選択ダイアログが表示...
-
JavaScriptにて動的に配列を作...
-
name属性のないformタグの、中...
-
ボタンを押すとテキストボック...
-
jqueryでtextareaのcols、rows...
-
テキストエリアをenterキーでフ...
-
ASP.NETでNAME属性を固定にしたい
-
submitボタン押下時にPOSTされ...
-
時間の比較は可能でしょうか?
-
出発駅A、到着駅Bを選択すると...
-
ひ孫に当たるiframe から親ウイ...
おすすめ情報