我的数组:
const create = [{"month":"Jan","createCount":"4"},{"month":"Feb","createCount":"5"}];
const close = [{"month":"Jan","closeCount":"3"},{"month":"Feb","closeCount":"5"}];
我需要合并数组对象以比较 month 字段。
我希望我的结果这样...
const data = [{"month":"Jan","createCount":"4","closeCount":"3"},{"month":"Feb","createCount":"5","closeCount":"5"}];
我尝试此代码:
const data = [...create, ...close];
但这只是合并两个数组数据。
请给我任何解决方案!
答案 0 :(得分:3)
您可以使用.map()
和Object.assign()
方法:
const create = [{"month":"Jan","createCount":"4"}, {"month":"Feb","createCount":"5"}],
close = [{"month":"Jan","closeCount":"3"}, {"month":"Feb","closeCount":"5"}];
const result = create.map(
o => Object.assign({}, o, close.find(({month}) => month === o.month))
);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:1)
假设create
数组中不存在close
数组中不存在的条目,反之亦然
尝试使用Array.reduce,Array.map和Object.assign
进行关注
const create = [{"month":"Jan","createCount":"4"},{"month":"Feb","createCount":"5"}];
const close = [{"month":"Jan","closeCount":"3"},{"month":"Feb","closeCount":"5"}];
// Create an object with key as month and createCount as value
let obj = create.reduce((a, o) => Object.assign(a, {[o.month]: o.createCount}), {});
// Iterate over close array and add createCount from obj
let result = close.map(o => ({...o, createCount : obj[o.month]}));
console.log(result);
答案 2 :(得分:0)
仅在for
中使用const create = [{ "month": "Jan", "createCount": "4" }, { "month": "Feb", "createCount": "5" }];
const close = [{ "month": "Jan", "closeCount": "3" }, { "month": "Feb", "closeCount": "5" }];
for (var i in create) {
var item = create[i];
item.closeCount = close.find(x => x.month == item.month).closeCount;
}
console.log(create);
答案 3 :(得分:0)
在这里我添加了一些示例,请参考该代码
const create = [{"month":"Jan","createCount":"4"},{"month":"Feb","createCount":"5"}];
const close = [{"month":"Jan","closeCount":"3"},{"month":"Feb","closeCount":"5"}];
console.log(create.length);
for(var data = 0 ; data < create.length ; data++){
var datas = []
if(create[data].month == close[data].month){
datas=Object.assign(create[data],close[data]);console.log(create[data]);
}
}