首页 > 解决方案 > 将数据从一个对象数组合并到另一个对象数组

问题描述

我正在寻找将从本地数据库返回的数组与要发送到前端的虚拟数据结合起来。

我有两个对象数组,用户直接来自我的 mongo 数据库,在将结果发送到前端之前,我想将虚拟数据添加到用户对象数组中。现在用户列表比我的虚拟数据大得多,因此我想遍历我的用户数据并将 dummyData 附加到每个用户对象,一旦我到达我的 dummyData 的末尾,它应该只是从顶部开始。

let users = [
      { name: "John", lastName: "Henry" },
      { name: "Peter", lastName: "Pumpkin" },
      {name: "John", lastName: "Snow"},
      {name: "Jack", lastName: "Stevens"}

    ];
let dummyData = [
      {
        callTime: "Call Now",
        userType: "End User(Agent)",
        callStatus: "Called",
        orderStatus: "Order Placed(1)",
        consultant: "Bennie Hennie",
        company: "Some Company"
      },
      {
        callTime: "Call Now",
        userType: "End User(James Bond)",
        callStatus: "Pending Call",
        orderStatus: "No Order Placed",
        consultant: "Sally Sue",
        company: "Super Sonic & Co"
      },
      {
        callTime: "Call Now",
        userType: "End User(Peter Griffin))",
        callStatus: "Called",
        orderStatus: "Order Placed(1)",
        consultant: "Jenny Oldstone",
        company: "Witcher School"
      }
    ];

期望的最终结果应该是:

users[
       {name: "John", 
        lastName: "Henry",
        callTime: "Call Now",
        userType: "End User(Agent)",
        callStatus: "Called",
        orderStatus: "Order Placed(1)",
        consultant: "Bennie Hennie",
        company: "Some Company" 
     }]

我想我可以通过 forloop 实现这一点,但我以前从未循环过对象。

标签: javascriptnode.jsarrays

解决方案


let k = 0;
users.forEach((item,i)=> {
 k = k === dummyData.length ? 0 : k;
 users[i] =  {...users[i],...dummyData[k]};
 k++;
});
console.log(users)

尝试这个 -


推荐阅读