オブジェクトの配列を結合するメモ。
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}`)
});
という感じでしょうか。