我下面有一个对象数组
selectedOption = [
{
id: 'REPORTORDER',
name: 'reportOrder'
},
{
id: 'REORDER',
name: ‘reorder'
},
{
id: 'RETURNPRODUCTS',
name: 'returnProducts'
},
{
id: 'ENTERPO',
name: 'enterPo'
}
]
基于shipmentStatus
为“ CANCELLED”且entriesList
为[]的条件,我想从上述数组中删除第二项。
我尝试使用如下所述的过滤器方法:
selectedOption.filter(item => (shipmentStatus == "CANCELLED" && entriesList == []) ? item.name != "reorder" : item.name)
filter
返回一个新数组,因此您需要将selectedOption
重新分配给filter
的结果。 if (shipmentStatus == 'CANCELLED' && entriesList.length == 0) {
selectedOption = selectedOption.filter(
(item) => item.name != 'reorder'
);
}
external条件对数组进行变异,在这种情况下,您必须像这样检查条件outside filter
let condition = true;
let selectedOption = [{
id: 'REPORTORDER',
name: 'reportOrder'
},
{
id: 'REORDER',
name: 'reorder'
},
{
id: 'RETURNPRODUCTS',
name: 'returnProducts'
},
{
id: 'ENTERPO',
name: 'enterPo'
}
];
if (condition) selectedOption = selectedOption.filter(item => item.name != 'reorder')
console.log(selectedOption)