gpt4 book ai didi

javascript - 迭代两个对象数组并创建新的数组对象

转载 作者:行者123 更新时间:2023-12-01 03:57:50 27 4
gpt4 key购买 nike

我有以下两个数组对象

const plan = [
{Item_ID : 01, Date:"2020-04-01", Items:"10"},
{Item_ID : 02, Date:"2020-04-01", Items:"20"},
{Item_ID : 03, Date:"2020-04-02", Items:"40"},
{Item_ID : 05, Date:"2020-04-03", Items:"10"},
];

const actual = [{Date:"2020-04-01", Actual_Items:"15"},
{Date:"2020-04-02", Actual_Items:"40"},
{Date:"2020-04-05", Actual_Items:"50"},
];

这两个数组显示计划销售额和实际销售额,基于这两个数组,我尝试创建以下数组

 const plan = [
{Item_ID : 01, Date:"2020-04-01", Items:"10", Actual_Items:"15"},
{Item_ID : 02, Date:"2020-04-01", Items:"20", Actual_Items:"15"},
{Item_ID : 03, Date:"2020-04-02", Items:"40", Actual_Items:"40"},
{Item_ID : 05, Date:"2020-04-03", Items:"10", Actual_Items:"0"},
{Item_ID : null, Date:"2020-04-04", Items:"0", Actual_Items:"0"},
{Item_ID : null, Date:"2020-04-05", Items:"0", Actual_Items:"50"},
];

因此,根据计划的数组,如果这些是当天完成的实际销售额,我们将显示否则显示 0。如果没有计划但已完成销售,则 Item_ID 将为 null Items 将为 null 但 Actual_Items 需要显示销售数量。

我创建了下面的 map 函数,可能完全是错误的逻辑,我无法继续 future ,知道如何创建这个最终数组

let op = plan.map((e,i)=>{
let temp = actual.find(element=> element.Date === e.Date)
if(temp.Actual_Items) {
e.Actual_Items= temp.Actual_Items;
}
return e;
})
console.log(op);

最佳答案

您可以像这样连接两个数组:

let op = plan.concat(actual);

let op = [...plan, ...actual];

但在此之前,您可能需要迭代“actual”来修改值“Item_ID”和“Items”。

解决方案如下:

const plan = [
{Item_ID : 01, Date:"2020-04-01", Items:"10"},
{Item_ID : 02, Date:"2020-04-01", Items:"20"},
{Item_ID : 03, Date:"2020-04-02", Items:"40"},
{Item_ID : 05, Date:"2020-04-03", Items:"10"},
];

const actual = [{Date:"2020-04-01", Actual_Items:"15"},
{Date:"2020-04-02", Actual_Items:"40"},
{Date:"2020-04-05", Actual_Items:"50"},
];

actual.forEach(function(part, index) {
part.Items = "0";
part.Item_ID = null;
this[index] = part;
}, actual);

let op = plan.concat(actual);

console.log(op);

关于javascript - 迭代两个对象数组并创建新的数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60946756/

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