首页 > 解决方案 > 在 React Native/Javascript 中合并两个数组

问题描述

我有一个数组让我们说

arr1 =  [ 
{date: "June 27", data: ["dummyone","dummy2",...]},
{date: "June 24", data: ["dummyone","dummy2",...]},
{date: "June 18", data: ["dummyone","dummy2",...]},
{date: "June 14", data: ["dummyone","dummy2",...]}
]

arr2 = [ 
{date: "June 14", data: ["dummy3","dummy4",...]},
{date: "June 12", data: ["dummy3","dummy4",...]},
{date: "June 10", data: ["dummy3","dummy4",...]},
{date: "June 09", data: ["dummy3","dummy4",...]}
]

所以我的最终数组应该是

[ 
{date: "June 27", data: ["dummyone","dummy2",...]},
{date: "June 24", data: ["dummyone","dummy2",...]},
{date: "June 18", data: ["dummyone","dummy2",...]},
{date: "June 14", data: ["dummyone","dummy2","dummy3","dummy4",...]},
{date: "June 12", data: ["dummy3","dummy4",...]},
{date: "June 10", data: ["dummy3","dummy4",...]},
{date: "June 09", data: ["dummy3","dummy4",...]}
]

我尝试合并“6 月 14 日”日期的数组,也尝试使用扩展运算符,例如(lastDateLoaded 有“6 月 14 日”作为值)

arr2.forEach(activitiesTempData => {
         if(lastDateLoaded === activitiesTempData.date){

             arr1[lastDateIndex].data = [...arr1[lastDateIndex].data, ...activitiesTempData.data];

         }else{
           arr1 = [...arr1, arr2];
         }
    })

标签: javascriptarraysreactjsreact-native

解决方案


我们可以像这样使用 concat() 方法合并两个数组

  let arr1 =  [ 
{date: "June 27", data: ["dummyone","dummy2"]},
{date: "June 24", data: ["dummyone","dummy2"]},
{date: "June 18", data: ["dummyone","dummy2"]},
{date: "June 14", data: ["dummyone","dummy2"]}
]

let arr2 = [ 
{date: "June 14", data: ["dummy3","dummy4"]},
{date: "June 12", data: ["dummy3","dummy4"]},
{date: "June 10", data: ["dummy3","dummy4"]},
{date: "June 09", data: ["dummy3","dummy4"]}
]

console.log(arr1.concat(arr2));

这将打印这两个数组的合并数组。现在,如果您想删除重复记录,那么您应该使用lodash库或其他 javascript 方法等filter(), reduce()


推荐阅读