此代码可用于过滤我的一个ID。
let symbols =([
{symbols:"XFX", id:1},
{symbols:"XFF", id:2},
{symbols:"XEE", id:20},
])
function getStocksOver(stocks, id){
return stocks.filter(function(stock,index){
return stock.id !=id;
});
}
console.log(getStocksOver(symbols,1))
现在我希望能够按对象进行过滤
let symbolsDeleted =([
{symbols:"XFX", id:1},
{symbols:"XFF", id:2},
])
有人知道这样做的方法吗,因为我真的被卡住了。
答案 0 :(得分:1)
您可以创建一个附加过滤器,以按库存ID过滤symbolsDeleted
数组,而不是将每个stock.id与单个ID进行比较。
如果没有匹配项,则过滤结果的长度将为0。
在这种情况下,您将true返回外部过滤器函数。
如果找到匹配项,则返回false。
let symbolsDeleted =([
{symbols:"XFX", id:1},
{symbols:"XFF", id:2},
])
let symbols =([
{symbols:"XFX", id:1},
{symbols:"XFF", id:2},
{symbols:"XEE", id:20},
])
function getStocksOver(stocks, objArray){
return stocks.filter(function(stock, index) {
return objArray.filter(function(value) {
return value.id == stock.id
}).length == 0;
});
}
console.log(getStocksOver(symbols, symbolsDeleted))
答案 1 :(得分:1)
我认为您可以使用地图和过滤器
const symbolsDeleted =([
{symbols:"XFX", id:1},
{symbols:"XFF", id:2},
])
let symbols =([
{symbols:"XFX", id:1},
{symbols:"XFF", id:2},
{symbols:"XEE", id:20},
])
function getStocksOver(stocks, oObject) {
const keys = oObject.map(o => o.id);
return stocks.filter((s) => !keys.includes(s.id));
}
console.log(getStocksOver(symbols, symbolsDeleted));