在JavaScript数组(Node.js)中按多个键和多个属性值之和进行分组的方法如下:
const data = [
{ id: 1, name: 'A', category: 'X', value: 10 },
{ id: 2, name: 'B', category: 'Y', value: 20 },
{ id: 3, name: 'C', category: 'X', value: 30 },
{ id: 4, name: 'D', category: 'Y', value: 40 },
{ id: 5, name: 'E', category: 'Z', value: 50 }
];
const groupedData = {};
data.forEach(item => {
// 4. 根据多个键和属性值之和生成分组的键
const groupKey = item.category + '-' + (item.value > 30 ? 'High' : 'Low');
// 5. 检查分组键是否已存在,如果不存在则创建一个空数组
if (!groupedData[groupKey]) {
groupedData[groupKey] = [];
}
// 6. 将当前对象添加到对应的分组中
groupedData[groupKey].push(item);
});
console.log(groupedData);
这将输出以下结果:
{
'X-Low': [
{ id: 1, name: 'A', category: 'X', value: 10 }
],
'Y-High': [
{ id: 4, name: 'D', category: 'Y', value: 40 }
],
'Y-Low': [
{ id: 2, name: 'B', category: 'Y', value: 20 }
],
'Z-High': [
{ id: 5, name: 'E', category: 'Z', value: 50 }
],
'X-High': [
{ id: 3, name: 'C', category: 'X', value: 30 }
]
}
这个方法通过将多个键和属性值之和生成一个唯一的分组键,然后将符合条件的对象添加到对应的分组中。你可以根据实际需求修改分组的逻辑和条件。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体产品选择应根据实际需求和情况进行评估。
领取专属 10元无门槛券
手把手带您无忧上云