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":""
}
]
添加回答
舉報