React Native/Javascript中两个数组的合并
我有一个数组React Native/Javascript中两个数组的合并,javascript,arrays,reactjs,react-native,Javascript,Arrays,Reactjs,React Native,我有一个数组 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
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];
}
})
您可以这样做: arr1=[ {日期:6月27日,数据:[dummyone,dummy2]}, {日期:6月24日,数据:[dummyone,dummy2]}, {日期:6月18日,数据:[dummyone,dummy2]}, {日期:6月14日,数据:[dummyone,dummy2]} ] arr2=[ {日期:6月14日,数据:[dummy3,dummy4]}, {日期:6月12日,数据:[dummy3,dummy4]}, {日期:6月10日,数据:[dummy3,dummy4]}, {日期:2009年6月,数据:[dummy3,dummy4]} ] const result=[…arr1,…arr2]。reducea,c=>{ 让find=a.find{date}=>date==c.date; 如果找到{ found.data=[…found.data,…c.data]; }否则{ a、 PUSC; } 返回a; }, [];
console.logresult 您可以这样做: arr1=[ {日期:6月27日,数据:[dummyone,dummy2]}, {日期:6月24日,数据:[dummyone,dummy2]}, {日期:6月18日,数据:[dummyone,dummy2]}, {日期:6月14日,数据:[dummyone,dummy2]} ] arr2=[ {日期:6月14日,数据:[dummy3,dummy4]}, {日期:6月12日,数据:[dummy3,dummy4]}, {日期:6月10日,数据:[dummy3,dummy4]}, {日期:2009年6月,数据:[dummy3,dummy4]} ] const result=[…arr1,…arr2]。reducea,c=>{ 让find=a.find{date}=>date==c.date; 如果找到{ found.data=[…found.data,…c.data]; }否则{ a、 PUSC; } 返回a; }, [];
console.logresult 合并数组或使用数组排列,并使用日期作为键将其缩减为对象。在相关日期键处将数据收集到数组中。转换回具有object.Value的对象: const arr1=[{日期:6月27日,数据:[dummyone,dummy2]},{日期:6月24日,数据:[dummyone,dummy2]},{日期:6月18日,数据:[dummyone,dummy2]},{日期:6月14日,数据:[dummyone,dummy2]}] const arr2=[{日期:6月14日,数据:[dummy3,dummy4]},{日期:6月12日,数据:[dummy3,dummy4]},{日期:6月10日,数据:[dummy3,dummy4]},{日期:2009年6月,数据:[dummy3,dummy4]}] 常量结果=对象值[…arr1,…arr2] .减速器,o=>{ r[o.date]=r[o.date]? {…r[o.date],数据:[…r[o.date]。数据,…o.data]} : o 返回r }, {}
console.logresultConcat数组或使用数组排列,并使用日期作为键将它们减少为对象。在相关日期键处将数据收集到数组中。转换回具有object.Value的对象: const arr1=[{日期:6月27日,数据:[dummyone,dummy2]},{日期:6月24日,数据:[dummyone,dummy2]},{日期:6月18日,数据:[dummyone,dummy2]},{日期:6月14日,数据:[dummyone,dummy2]}] const arr2=[{日期:6月14日,数据:[dummy3,dummy4]},{日期:6月12日,数据:[dummy3,dummy4]},{日期:6月10日,数据:[dummy3,dummy4]},{日期:2009年6月,数据:[dummy3,dummy4]}] 常量结果=对象值[…arr1,…arr2] .减速器,o=>{ r[o.date]=r[o.date]? {…r[o.date],数据:[…r[o.date]。数据,…o.data]} : o 返回r }, {} logresult您可以使用映射进行分组,并以所需的格式获取分组数据 var arr1=[{日期:6月27日,数据:[dummyone,dummy2]},{日期:6月24日,数据:[dummyone,dummy2]},{日期:6月18日,数据:[dummyone,dummy2]},{日期:6月14日,数据:[dummyone,dummy2]}, arr2=[{日期:6月14日,数据:[dummy3,dummy4]},{日期:6月12日,数据:[dummy3,dummy4]},{日期:6月10日,数据:[dummy3,dummy4]},{日期:2009年6月,数据:[dummy3,dummy4]}, 结果=Array.from […arr1,…arr2]。减少 m、 {date,data}=>m.setdate,[…m.getdate | |[],…data], 新地图 , [日期,数据]=>{date,data} ; console.logresult; .作为控制台包装{max height:100%!important;top:0;}您可以使用映射进行分组,并以所需的格式获取分组数据 var arr1=[{日期:6月27日,数据:[dummyone,dummy2]},{日期:6月24日,数据:[dummyone,dummy2]},{日期:6月18日,数据:[dummyone,dummy2]},{日期:6月14日,数据:[dummyone,dummy2]}, arr2=[{日期:6月14日,数据:[dummy3,dummy4]},{日期:6月12日,数据:[dummy3,dummy4]},{日期:6月10日,数据:[dummy3,dummy4]},{日期:2009年6月,数据:[dummy3,dummy4]}, 结果=Array.from […arr1,…arr2]。减少 m、 {date,data}=>m.setdate,[…m.getdate | |[],…data], 新地图 , [日期,数据]=>{date,data} ; console.logresult; .as console wrapper{max height:100%!important;top:0;}一起使用forEach、filter和concat来过滤掉重复的值 var arr1=[ {日期:6月27日,数据:[dummyone,dummy2]}, {日期:6月24日,数据:[dummyone,dummy2]}, {日期:6月18日,数据:[dummyone,dummy2]}, {日期:6月14日,数据:[dummyone,dummy2]} ] var arr2=[ {日期:6月14日,数据:[dummy3,dummy4]}, {日期:6月12日,数据:[dummy3,dummy4]}, {日期:6月10日,数据:[dummy3,dummy4]}, {日期:2009年6月,数据:[dummy3,dummy4]} ] arr2.foreache函数{ 变量 arr=arr1.滤波函数,j{ 返回r.date==e.date; } arr.length==0?arr1.push:arr1[arr1.indexofar[0]]。data=arr1[arr1.indexofar[0]]。data.concate.data } console.logarr1同时使用forEach、filter和concat来过滤掉重复的值 var arr1=[ {日期:6月27日,数据:[dummyone,dummy2]}, {日期:6月24日,数据:[dummyone,dummy2]}, {日期:6月18日,数据:[dummyone,dummy2]}, {日期:6月14日,数据:[dummyone,dummy2]} ] var arr2=[ {日期:6月14日,数据:[dummy3,dummy4]}, {日期:6月12日,数据:[dummy3,dummy4]}, {日期:6月10日,数据:[dummy3,dummy4]}, {日期:2009年6月,数据:[dummy3,dummy4]} ] arr2.foreache函数{ var arr=arr1.filterFunction,j{ 返回r.date==e.date; } arr.length==0?arr1.push:arr1[arr1.indexofar[0]]。data=arr1[arr1.indexofar[0]]。data.concate.data }
logarr1我们可以像这样使用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等。我们可以使用如下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等。您是否希望将arr1和arr2结合起来?如果是,试试这个
var arr3 = arr1.concat(arr2)
console.log(arr3)
您正在寻找arr1和arr2的组合吗?如果是,试试这个
var arr3 = arr1.concat(arr2)
console.log(arr3)
谢谢你的回答,但是没有用。我在6月14日的数据中只得到了两个值。@ArvindlalJaiswal,这很奇怪,代码片段似乎运行了预期的结果。也在我自己的控制台上试用过。@ArvindlalJaiswal重要的部分是合并两个数组[…arr1,…arr2]并减少生成的数组。很抱歉@Titus和Christopher Ngo,它在控制台上工作,但对于我的代码它不工作。将再次检查我的代码并返回。但是谢谢你的回答,谢谢你的回答,但是没有用。我在6月14日的数据中只得到了两个值。@ArvindlalJaiswal,这很奇怪,代码片段似乎运行了预期的结果。也在我自己的控制台上试用过。@ArvindlalJaiswal重要的部分是合并两个数组[…arr1,…arr2]并减少生成的数组。很抱歉@Titus和Christopher Ngo,它在控制台上工作,但对于我的代码它不工作。将再次检查我的代码并返回。但是谢谢你的回复,我认为OP想要合并重复的数据数组,而不仅仅是删除它们。此外,在这种情况下,如果数组包含某种元素,最好使用.some而不是.filter.Fiexd it@titus。我认为OP希望合并重复的数据数组,而不仅仅是删除它们。此外,在这种情况下,如果数组包含某种元素,最好使用.some而不是.filter.Fiexd it@Titus