gpt4 book ai didi

javascript - 如何根据需要将对象数组转换为对象

转载 作者:行者123 更新时间:2023-12-01 00:15:54 25 4
gpt4 key购买 nike

我有两个对象数组,我试图从中循环并根据要求获取一个新对象。

我的第一个数组

这是标题

let billHeader = [
{
"billno": "A1",
"companyid": "AAAA",
"pending": "Y",
"cancelled": "N",
"salesman": "admin",
"netamount": "225.0000",
"billdate": "2020-01-16",
"billtime": "11:15:29"
},
{
"billno": "A2",
"companyid": "AAAA",
"pending": "Y",
"cancelled": "N",
"salesman": "admin",
"netamount": "1500.0000",
"billdate": "2020-01-16",
"billtime": "11:18:29"
}
]

第二个是buillInfo

let billInfo =  [
{
"billno": "A1",
"itemcode": "1002",
"companyid": "AAAA",
"unitprice": "125.0000",
"itemname": "MANCHOW NV SOUP",
"quantity": "1.0000",
"totalamount": "125.0000",
"categoryname": "SOUP"
},
{
"billno": "A1",
"itemcode": "1001",
"companyid": "AAAA",
"unitprice": "100.0000",
"itemname": "MANCHOW V SOUP",
"quantity": "1.0000",
"totalamount": "100.0000",
"categoryname": "SOUP"
},
{
"billno": "A2",
"itemcode": "1001",
"companyid": "AAAA",
"unitprice": "300.0000",
"itemname": "MANCHOW V SOUP",
"quantity": "2.0000",
"totalamount": "600.0000",
"categoryname": "SOUP"
},
{
"billno": "A2",
"itemcode": "1003",
"companyid": "AAAA",
"unitprice": "300.0000",
"itemname": "Name Item",
"quantity": "3.0000",
"totalamount": "6300.0000",
"categoryname": "SOUP"
}
]

我想循环遍历它们并得到与此完全相同的输出

 {
"module": "outletbills",
"status": "success",
"billinfo": [
{
"billno": "A1",
"companyid": "AAAA",
"pending": "N",
"cancelled": "N",
"salesman": "admin",
"netamount": "225.0000",
"billdate": "2020-01-16",
"billtime": "11:15:29",
"billitems": [
{
"billno": "A1",
"itemcode": "1001",
"companyid": "AAAB",
"unitprice": "100.0000",
"itemname": "MANCHOW V SOUP",
"quantity": "1.0000",
"totalamount": "100.0000",
"categoryname": "SOUP"
},
{
"billno": "A498",
"itemcode": "1002",
"companyid": "AAAB",
"unitprice": "125.0000",
"itemname": "MANCHOW NV SOUP",
"quantity": "1.0000",
"totalamount": "125.0000",
"categoryname": "SOUP"
}
]
},
{
"billno": "A2",
"companyid": "AAAA",
"pending": "N",
"cancelled": "N",
"salesman": "admin",
"netamount": "1500.0000",
"billdate": "2020-01-16",
"billtime": "11:16:41",
"billitems": [
{
"billno": "A2",
"itemcode": "1001",
"companyid": "AAAB",
"unitprice": "900.0000",
"itemname": "MANCHOW V SOUP",
"quantity": "2.0000",
"totalamount": "200.0000",
"categoryname": "SOUP"
},
{
"billno": "A2",
"itemcode": "1002",
"companyid": "AAAA",
"unitprice": "125.0000",
"itemname": "MANCHOW NV SOUP",
"quantity": "1.0000",
"totalamount": "600.0000",
"unitcode": "NOS"
}
]
}
]
}

如何开始?我知道几种可以帮助我的方法,例如映射,减少,过滤,但不知道如何准确地做到这一点。

最佳答案

账单项目通过账单编号与账单相关 - billno

return {
"module": "outletbills",
"status": "success",
"billinfo": billHeader.map(billHeaderEntry => {
return {
...bill,
billitems: billInfo.filter(billInfoEntry =>
billHeaderEntry.billno === billInfoEntry.billno)
}
}),
}

如果你不想修改某些状态......

for (let billHeaderEntry of billHeader) {
billHeader.billItems = billInfo.filter(billInfoEntry =>
billHeaderEntry.billno === billInfoEntry.billno)
}

return billHeader

关于javascript - 如何根据需要将对象数组转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59769454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com