z-utils-ts
Version:
使用TypeScript编写的工具函数库
35 lines (33 loc) • 938 B
JavaScript
// 用户信息数组
var users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];
// 订单信息数组
var orders = [
{ userId: 1, product: 'Laptop' },
{ userId: 1, product: 'Mouse' },
{ userId: 2, product: 'Keyboard' },
{ userId: 3, product: 'Monitor' }
];
function associativeArray(arr1, arr2, key1, key2, prefixKey = '$') {
let arr2Map = {};
for (let i = 0; i < arr2.length; i++) {
arr2Map[arr2[i][key2]] = arr2[i];
}
let result = arr1.map((item) => {
let newItem = item;
let user = arr2Map[item[key1]];
if(user) {
for(let key in user) {
if(key === key2) continue;
newItem[prefixKey + key] = user[key];
}
}
return newItem;
});
return result;
}
var data = associativeArray(users, orders, 'id', 'userId');
console.log("🚀 ~ data:", data);