可以使用reduce()方法来处理数组对象。首先,创建一个空对象来保存合并后的结果。然后,遍历数组对象,并检查每个对象是否具有相同的属性和值。如果是,则将其添加到已有的对象中,否则将其视为独特对象并将其添加到结果对象中。
以下是使用types
cr
i
pt
实现以上算法的代码示例:
interface Data {
id: number;
name: string;
const dataArray: Data[] = [
{ id: 1, name: "A" },
{ id: 2, name: "B" },
{ id: 1, name: "C" },
{ id: 3, name: "D" },
{ id: 2, name: "E" },
const mergedDataObj = dataArray.reduce((acc, data) => {
const { id } = data;
if (acc[id]) {
acc[id].name += `,${data.name}`;
} else {
acc[id] = data;
return acc;
}, {});
const mergedDataArray: Data[] = Object.values(mergedDataObj);
console.log(mergedDataArray);
// Output: [{id:1, name:"A,C"}, {id:2, name:"B,E"}, {id:3, name:"D"}]
在这个示例中,我们有一个数据数组,其中有一些对象具有相同ID但不同名称。我们使用reduce()方法将它们合并到一个对象中,并将其名称连接起来,以逗号作为分隔符。最后,我们使用Object.values()方法将结果对象转换为数组形式。
输出结果如下:[{id:1, name:"A,C"}, {id:2, name:"B,E"}, {id:3, name:"D"}]。