1 回答

TA贡献1878条经验 获得超4个赞
Using.filter将始终返回满足您条件的公式数组,因此您需要先检查它是否给出结果,然后仅从.outputName其结果中检索。
可能是这样的:
const result = yields.map(yld => {
const targetFormulas = formulas.filter(f => (f.formulaID + '-' + f.versionID).includes(yld.formulaID + '-' + yld.versionID));
const outputName = targetFormulas.length ? targetFormulas.map(f => f.outputName).join(',') : ''
return {
formulaID: yld.formulaID,
versionID: yld.versionID,
yieldFactor: yld.yieldFactor,
outputName
}
});
我用a.join(',')来返回用逗号分隔的outputNames,如果有超过1个。
如果你确定只会返回1个,你可以这样做 targetFormulas.map(f => f.outputName)[0]
这将返回以下结果
[
{
"formulaID":"4",
"versionID":1,
"yieldFactor":0.93,
"outputName":"Hazelnut Creamer"
},
{
"formulaID":"4",
"versionID":2,
"yieldFactor":0.98,
"outputName":""
},
{
"formulaID":"6",
"versionID":1,
"yieldFactor":0.95,
"outputName":"White Milk 2%"
},
{
"formulaID":"7",
"versionID":1,
"yieldFactor":0.85,
"outputName":""
}
]
添加回答
举报