根据数组属性索引拆分和合并JavaScript对象可以通过以下步骤实现:
function splitObjectByArrayProperty(obj, property) {
return Object.values(obj.reduce((acc, cur) => {
const key = cur[property];
if (!acc[key]) {
acc[key] = { ...cur };
} else {
acc[key] = { ...acc[key], ...cur };
}
return acc;
}, {}));
}
function mergeObjectsByArrayProperty(objArray, property) {
return objArray.reduce((acc, cur) => {
const key = cur[property];
if (!acc[key]) {
acc[key] = { ...cur };
} else {
acc[key] = { ...acc[key], ...cur };
}
return acc;
}, {});
}
这样,我们就可以根据数组属性索引拆分和合并JavaScript对象了。
示例用法:
const data = [
{ id: 1, name: 'John', age: 25 },
{ id: 2, name: 'Jane', age: 30 },
{ id: 3, name: 'Bob', age: 35 },
{ id: 4, name: 'Alice', age: 40 },
{ id: 5, name: 'Eve', age: 45 }
];
const splitData = splitObjectByArrayProperty(data, 'age');
console.log(splitData);
// 输出:
// [
// { id: 1, name: 'John', age: 25 },
// { id: 2, name: 'Jane', age: 30 },
// { id: 3, name: 'Bob', age: 35 },
// { id: 4, name: 'Alice', age: 40 },
// { id: 5, name: 'Eve', age: 45 }
// ]
const mergedData = mergeObjectsByArrayProperty(splitData, 'age');
console.log(mergedData);
// 输出:
// {
// 25: { id: 1, name: 'John', age: 25 },
// 30: { id: 2, name: 'Jane', age: 30 },
// 35: { id: 3, name: 'Bob', age: 35 },
// 40: { id: 4, name: 'Alice', age: 40 },
// 45: { id: 5, name: 'Eve', age: 45 }
// }
这是一个简单的根据数组属性索引拆分和合并JavaScript对象的实现。根据具体的业务需求,你可以根据需要进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云