如何使用一行代码javascript从另一个数组中删除数组列表



我在angularproductsproductsGreen中有两个数组。产品包含所有的产品和产品绿色只有成功的产品。

当有人uncheck green checkbox时,我想从products中删除productsGreen。我看到了很多答案,他们使用循环并编写多行代码。

这可以在一行代码中实现吗,比如products.remove(productsGreen)

这是我的阵列products

{
"color": "green",
"loc": "L1"
},
{
"color": "green",
"loc": "L2"
},
{
"color": "red",
"loc": "L5"
},
{
"color": "red",
"loc": "L6"
},

这是我的阵列productsGreen

{
"color": "green",
"loc": "L1"
},
{
"color": "green",
"loc": "L2"
},

我需要输出

{
"color": "red",
"loc": "L5"
},
{
"color": "red",
"loc": "L6"
},

编辑1:

这是我的代码

OnChangeGreen($event)
{
if(this.CheckboxGreen==true)
{
this.CheckboxGreen=false;
this.chartData.pop(this.mapDatagreen)  
this.mapImageSeries.data=this.chartData;
this.chartData.validateData();
}
}

您可以按属性筛选对象数组。基本思路:

var data = [{
"color": "green",
"loc": "L1"
},
{
"color": "green",
"loc": "L2"
},
{
"color": "red",
"loc": "L5"
},
{
"color": "red",
"loc": "L6"
}
];
const selectItems = filters =>
data.filter(item => filters.includes(item.color))

console.log("red", selectItems(["red"]));
console.log("green", selectItems(["green"]));
console.log("red green", selectItems(["red", "green"]));
console.log("blue", selectItems(["blue"]));

相关内容

最新更新