在 Angular 中使用带有 Map 函数的 2 个数组创建新数组
Create new array using 2 arrays with Map function in Angular
是否有从 2 个数组创建新数组的有效方法?
var employees1 = [
{ id: 11, name: 'joe' },
{ id: 12, name: 'mike' },
{ id: 13, name: 'mary' },
{ id: 14, name: 'anne' }
];
var employees2 = [
{ id: 11, message: 'test1' },
{ id: 12, message: 'test2' },
{ id: 13, message: 'test3' },
{ id: 14, message: 'test4' }
];
迭代 employees1 数组并获取 'message' 以匹配来自 employees2 的 ID。生成新数组:
var employees3 = [
{ id: 11, name: 'joe', message: 'test1' },
{ id: 12, name: 'mike', message: 'test2' },
{ id: 13, name: 'mary', message: 'test3' },
{ id: 14, name: 'anne', message: 'test4' }
];
这可以使用地图功能吗?或者使用建议的标准 foreach?
遍历第一个数组,在第二个数组中搜索元素,最后将它们推入新数组,如下图所示:
var employees3 = [];
employees1.forEach(emp1 => {
const findEmp = employees2.find(emp2 => emp2.id === emp1.id);
if (findEmp) {
employees3.push({
...emp1,
...findEmp
});
}
});
console.log(employees3);
您可以使用 Array#map
和 Array#find
来获得所需的输出。我附上示例代码:
var employees3 = employees1.map(emp => ({
...emp,
...(employees2.find(item => item.id === emp.id) ?? {})
}))
是否有从 2 个数组创建新数组的有效方法?
var employees1 = [
{ id: 11, name: 'joe' },
{ id: 12, name: 'mike' },
{ id: 13, name: 'mary' },
{ id: 14, name: 'anne' }
];var employees2 = [
{ id: 11, message: 'test1' },
{ id: 12, message: 'test2' },
{ id: 13, message: 'test3' },
{ id: 14, message: 'test4' }
];
迭代 employees1 数组并获取 'message' 以匹配来自 employees2 的 ID。生成新数组:
var employees3 = [
{ id: 11, name: 'joe', message: 'test1' },
{ id: 12, name: 'mike', message: 'test2' },
{ id: 13, name: 'mary', message: 'test3' },
{ id: 14, name: 'anne', message: 'test4' }
];
这可以使用地图功能吗?或者使用建议的标准 foreach?
遍历第一个数组,在第二个数组中搜索元素,最后将它们推入新数组,如下图所示:
var employees3 = [];
employees1.forEach(emp1 => {
const findEmp = employees2.find(emp2 => emp2.id === emp1.id);
if (findEmp) {
employees3.push({
...emp1,
...findEmp
});
}
});
console.log(employees3);
您可以使用 Array#map
和 Array#find
来获得所需的输出。我附上示例代码:
var employees3 = employees1.map(emp => ({
...emp,
...(employees2.find(item => item.id === emp.id) ?? {})
}))