[英]How to compare array of objects and return an array of object with match and non match key value
[英]Compare object with objects in array and replace value where key match
我有一个对象和一组对象。 我想将数组中的所有对象与单个硬编码对象进行比较,然后在对象属性匹配的地方替换一些值。
单个硬编码对象描述了正确的完整数据集的外观。 每个属性的值为null。 如果该属性与单个属性中的任何一个属性匹配,则该值应替换为数组中任何对象的值。
// single object (hard coded)
var completeDataSet = {
jan: null,
jan;prognosis: null,
feb: null,
feb;prognosis: null,
mar: null,
mar;prognosis: null,
apr: null,
apr;prognosis: null,
may: null,
may;prognosis: null,
jun: null,
jun;prognosis: null,
jul: null,
jul;prognosis: null,
aug: null,
aug;prognosis: null,
sep: null,
sep;prognosis: null,
oct: null,
oct;prognosis: null,
nov: null,
nov;prognosis: null,
dec: null,
dec;prognosis: null
}
对象数组可能看起来像这样:
//Array of objects with missing properties
var data = [{
jan: 0.258,
jan;prognosis: false,
feb: 15.256,
feb;prognosis: false,
apr: 0.0156,
apr;prognosis: true,
oct: 1.235,
oct;prognosis: true,
nov: 3.587,
nov;prognosis: false
},{
feb: 12.154,
feb;prognosis: true,
apr: 1.015,
apr;prognosis: true,
sep: 0.235,
sep;prognosis: false,
oct: 15.201,
oct;prognosis: true,
nov: 12.158,
nov;prognosis: false,
dec: 125.152,
dec;prognosis: true
}];
我希望最终结果看起来像这样:
var correctArrayOfData = [{
jan: 0.258,
jan;prognosis: false,
feb: 15.256,
feb;prognosis: false,
mar: null,
mar;prognosis: null,
apr: 0.0156,
apr;prognosis: true,
may: null,
may;prognosis: null,
jun: null,
jun;prognosis: null,
jul: null,
jul;prognosis: null,
aug: null,
aug;prognosis: null,
sep: null,
sep;prognosis: null,
oct: 1.235,
oct;prognosis: true,
nov: 3.587,
nov;prognosis: false,
dec: null,
dec;prognosis: null
},{
jan: null,
jan;prognosis: null,
feb: 12.154,
feb;prognosis: true,
mar: null,
mar;prognosis: null,
apr: 1.015,
apr;prognosis: true,
may: null,
may;prognosis: null,
jun: null,
jun;prognosis: null,
jul: null,
jul;prognosis: null,
aug: null,
aug;prognosis: null,
sep: 0.235,
sep;prognosis: false,
oct: 15.201,
oct;prognosis: true,
nov: 12.158,
nov;prognosis: false,
dec: 125.152,
dec;prognosis: true
}]
如您所见,如果键匹配,则我填写了值,并将不匹配的props和value保留为null。
你能帮我这个忙吗?
谢谢!
将预期结果用作模板,然后将属性分配给数组correctArrayOfData
。
var data = [{ jan: 0.258, 'jan;prognosis': false, feb: 15.256, 'feb;prognosis': false, apr: 0.0156, 'apr;prognosis': true, oct: 1.235, 'oct;prognosis': true, nov: 3.587, 'nov;prognosis': false},{ feb: 12.154, 'feb;prognosis': true, apr: 1.015, 'apr;prognosis': true, sep: 0.235, 'sep;prognosis': false, oct: 15.201, 'oct;prognosis': true, nov: 12.158, 'nov;prognosis': false, dec: 125.152, 'dec;prognosis': true}]; var template = { jan: null, 'jan;prognosis': null, feb: null, 'feb;prognosis': null, mar: null, 'mar;prognosis': null, apr: null, 'apr;prognosis': null, may: null, 'may;prognosis': null, jun: null, 'jun;prognosis': null, jul: null, 'jul;prognosis': null, aug: null, 'aug;prognosis': null, sep: null, 'sep;prognosis': null, oct: null, 'oct;prognosis': null, nov: null, 'nov;prognosis': null, dec: null, 'dec;prognosis': null}; var correctArrayOfData = data.map(o => Object.assign(Object.assign({}, template), o)); console.log(correctArrayOfData);
.as-console-wrapper { max-height: 100% !important; top: 0; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.