var list = [ { name: "a", target: '123' }, { name: "b", target: '123' }, { name: "a", target: '567' } ];;
将name值进行聚类;
1、实现结果为Object:{ a: ['123', '567'], b: ['123'] }
var resultMap = {};
for (var i = 0; i < list.length; i++) {
var item = list[i];
if (resultMap[item.name]) {
resultMap[item.name].push(item.target);
} else {
resultMap[item.name] = [item.target];
}
}
resultMap = { a: ['123', '567'], b: ['123'] }
2、实现结果为列表:[ ['123', '567'], ['123'] ]
var resultMap = {};
for (var i = 0; i < list.length; i++) {
var item = list[i];
if (resultMap[item.name]) {
resultMap[item.name].push(item.target);
} else {
resultMap[item.name] = [item.target];
}
}
var resultArray = Object.values(resultMap);
console.log(resultArray);
resultMap = [ ['123', '567'], ['123'] ]
3、实现结果为Map:Map { 'a' => [ '123', '567' ], 'b' => [ '123' ] }
var resultMap = new Map();
for (var i = 0; i < list.length; i++) {
var item = list[i];
if (resultMap.has(item.name)) {
resultMap.get(item.name).push(item.target);
} else {
resultMap.set(item.name, [item.target]);
}
}
console.log(resultMap);
resultMap = { 'a' => [ '123', '567' ], 'b' => [ '123' ] }