标签:city,name,重复,JS,geometry,result,数组,var From: https://blog.csdn.net/u012953777/article/details/136822889// 假设有一个包含数据对象的数组,其中的对象具有相同的name属性
var dataArray = [
{ name: 'John', age: 25, city: 'New York', geometry: 'A' },
{ name: 'Jane', age: 30, city: 'Los Angeles', geometry: 'B' },
{ name: 'John', age: 22, city: 'Chicago', geometry: 'C' },
{ name: 'Jane', age: 28, city: 'San Francisco', geometry: 'D' }
];// 使用 Array.reduce 合并具有相同name属性的geometry数据到数组中
var mergedData = dataArray.reduce(function (result, currentData) {
var name = currentData.name;
var geometry = currentData.geometry;// 查找结果数组中具有相同name属性的对象
var existingItem = result.find(item => item.name === name);if (existingItem) {
// 如果找到,将当前数据的geometry数据添加到该对象的数组中
existingItem.geometryArray.push(geometry);
} else {
// 否则,创建一个新的对象,并将当前数据的geometry数据放入一个新的数组中
result.push({
name: name,
geometryArray: [geometry]
});
}return result;
}, []);console.log(mergedData);