我有一个对象数组,想要删除重复项
在图像中,我希望删除所有重复的值并仅获取单个值,并且对于重复项,会增加数量。
答案 0 :(得分:0)
您似乎正在实施如何在购物车中添加商品。我假设你有一个产品类或类似名称来创建你的对象。
export class Product {
constructor(
public name: string, public amount: number, quantity: number, productId: string){}
}
我建议你实施另一个课程,比如购物车。
export class Cart {
constructor(
public product: Product, public quantity: number) {}
}
在你的service.ts中,
carts: Cart[];
addToCart(product: Product) {
for (let i = 0; i < this.carts.length; i++) {
if(this.carts[i].product.productId == product.productId) {
this.carts[i].quantity = this.carts[i].quantity + 1;
return;
}// this code here to avoid duplicates and increase qty.
}
let cart = new Cart(product, 1);
this.carts.push(cart);
}
购物车中应该有3个不同的商品,cs(3),dota(1),nfs(1)。在我的购物车中,当您点击我的产品组件中的产品时,每个商品只会添加1个商品。
for(let i=0; i<products.length; i++){
this.addToCart(products[i]);
}
此代码如下所示
答案 1 :(得分:-1)
假设arr
是要从中删除重复的数组,这里有一个简单的代码可以删除重复的数据;
arr = Array.from(new Set(arr.map(x => {
let obj;
try {
obj = JSON.stringify(x);
} catch (e) {
obj = x;
}
return obj;
}))).map(x => {
let obj;
try {
obj = JSON.parse(x);
} catch (e) {
obj = x;
}
return obj;
});
现在,arr
没有重复项。