3 回答

TA貢獻1835條經驗 獲得超7個贊
.filter返回一個新數組;它不會修改數組。因此,如果您希望data獲得該輸出,則不會。但是,這將:
const expectedItems = data.filter(item => {
return item.header.po_no === 'P.O. Number' // Evaluates to true
});

TA貢獻1744條經驗 獲得超4個贊
您的代碼中有 ' 引號類型。過濾后的數據保存到變量中。
let line = "xyz";
let data = [
{
"header": {
"po_no": "P.O. Number"
},
"line": line
},
{
"header": {
"po_no": "Another P.O. Number"
},
"line": line
}
];
const filtered = data.filter(item => {
return item.header.po_no === 'P.O. Number' // Evaluates to true
})

TA貢獻1836條經驗 獲得超5個贊
使用帶有箭頭函數的Array.filter可以最簡潔的方式解決這個問題。filter返回主數組和過濾后的項目,其中find只返回匹配的特定項目。
let line = "xyz";
let data = [{
"header": { "po_no": "P.O. Number" },
line
},
{
"header": { "po_no": "Another P.O. Number" },
line
}
];
let filter = data.filter(d => d.header.po_no === 'P.O. Number') // return arr
let find = data.find(d => d.header.po_no === 'P.O. Number') // return just the item
console.log(filter)
console.log(find)
當處理箭頭函數并且您有直接返回時,您不需要打開函數括號......只需:
data.filter(d => d.header.po_no === 'P.O. Number') // <-- no { return ... }
另請注意,由于您的屬性被調用,line您可以簡單地將您的對象定義為:
{
"header": { "po_no": "Another P.O. Number" },
line // <-- same prop name as your variable name
}
添加回答
舉報