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
}
添加回答
举报