JavaScriptで配列を結合


オブジェクトの配列を結合するメモ。

index.js
//deptsマスタ
const depts = [
    { deptNo: 1, deptName: '総務' },
    { deptNo: 2, deptName: '経理' },
    { deptNo: 3, deptName: '人事' },
];

//membersマスタ
const members = [
    { name: 'foo', deptNo: 1 },
    { name: 'boo', deptNo: 2 },
    { name: 'hoge', deptNo: 3 },
];


//ループしながら結合
const newMembers = members.map(item =>
    ({
        name: item.name,
        deptname: depts.find(value => value.deptNo === item.deptNo).deptName
    })
);

//配列の中身を表示
console.log(newMembers);

実行した結果は下記の通り。

node index.js

[
  { name: 'foo', deptName: '総務' },
  { name: 'boo', deptName: '経理' },
  { name: 'hoge', deptName: '人事' }
]

配列を作らず直接表示時に結合するなら、

members.map(item => {
    console.log(`name: ${item.name} deptName: ${depts.find(value=>value.deptNo === item.deptNo).deptName}`)
});

という感じでしょうか。