以下是一个示例代码,演示如何按相似数据分组,并保留键和值。
// 原始数据
const data = [
{ key: 'A', value: 1 },
{ key: 'B', value: 2 },
{ key: 'C', value: 3 },
{ key: 'A', value: 4 },
{ key: 'B', value: 5 },
];
// 使用Map进行分组
const groupedData = new Map();
data.forEach(item => {
if (groupedData.has(item.key)) {
groupedData.get(item.key).push(item.value);
} else {
groupedData.set(item.key, [item.value]);
}
});
// 打印分组结果
groupedData.forEach((values, key) => {
console.log(`Key: ${key}, Values: ${values.join(', ')}`);
});
输出结果为:
Key: A, Values: 1, 4
Key: B, Values: 2, 5
Key: C, Values: 3
在上述示例中,我们使用了一个Map
对象来存储分组后的数据。我们遍历原始数据数组,并使用Map
的has
方法检查是否已经存在该键。如果存在,则取出对应的值数组,并将当前值推入该数组;如果不存在,则创建一个新的键值对,键为当前项的key
属性,值为一个包含当前值的数组。最后,我们使用forEach
方法遍历Map
对象,输出分组后的结果。
请注意,上述示例假设data
数组中的每个对象都具有key
和value
属性。如果实际情况与此不同,你可能需要相应地调整代码。
上一篇:按相似关系筛选图像列表
下一篇:按相似性对矩阵进行排序