我们有两个JSON数据,我们希望比较和得到两个键的值之间的差异,在第一个JSON数据中与JSON数据中的AVG_X进行比较。
第一个JSON-
var myObject=[
{
"Customer": "A",
"Count": 47
},
{
"Customer": "B",
"Count": 5
},
{
"Customer": "C",
"Count": 1
}
]第二个JSON-
var myobject1=[
{
"Customer": "A",
"AVG_X": 20
},
{
"Customer": "B",
"AVG_X": 4
},
{
"Customer": "C",
"AVG_X": 0
},
{
"Customer": "D",
"AVG_X": 3
}
]现在,比较计数与AVG_X之间的值,并得到每个客户之间的差异,并将其保存在新的JSON中。
预期产出应该如下-
{
"Customer": "A",
"Diff": 27
},
{
"Customer": "B",
"Diff": 1
},
"Customer": "C",
"Diff": 1
}发布于 2021-06-01 10:31:35
只需对地图进行myObject,并获得差异,并将结果存储在一个新对象中,该对象具有属性Customer和Diff。
如果两个数组中的对象具有相同的Customer ,则为。
var myObject = [
{ Customer: "A", Count: 47 },
{ Customer: "B", Count: 5 },
{ Customer: "C", Count: 1 },
];
var myobject1 = [
{ Customer: "A", AVG_X: 20 },
{ Customer: "B", AVG_X: 4 },
{ Customer: "C", AVG_X: 0 },
{ Customer: "D", AVG_X: 3 },
];
const result = myObject.map((o, i) => ({
Customer: o.Customer,
Diff: o.Count - myobject1[i].AVG_X,
}));
console.log(result);
如果对象可以出现在myobject1中的任何位置,则为。
var myObject = [
{ Customer: "A", Count: 47 },
{ Customer: "B", Count: 5 },
{ Customer: "C", Count: 1 },
];
var myobject1 = [
{ Customer: "A", AVG_X: 20 },
{ Customer: "B", AVG_X: 4 },
{ Customer: "C", AVG_X: 0 },
{ Customer: "D", AVG_X: 3 },
];
const result = myObject.map((obj) => {
const { Customer, Count } = obj;
const isExist = myobject1.find((o) => o.Customer === Customer);
if (isExist) return { Customer, Diff: Count - isExist.AVG_X };
else return obj;
});
console.log(result);
发布于 2021-06-01 10:42:17
var myObject=[
{
"Customer": "A",
"Count": 47
},
{
"Customer": "B",
"Count": 5
},
{
"Customer": "C",
"Count": 1
}
];
var myobject1=[
{
"Customer": "A",
"AVG_X": 20
},
{
"Customer": "B",
"AVG_X": 4
},
{
"Customer": "C",
"AVG_X": 0
},
{
"Customer": "D",
"AVG_X": 3
}
];
let myobject1_customer_array = myobject1.map(a => a.Customer);
let result = [];
let myobject1_id;
for(var i = 0; i < myObject.length; i++) {
myobject1_id = myobject1_customer_array.indexOf(myObject[i].Customer);
if (myobject1_id != -1) {
result.push({
"Customer": myObject[i].Customer,
"Diff": Math.abs(myObject[i].Count - myobject1[myobject1_id].AVG_X)
})
}
}
console.log(result);
https://stackoverflow.com/questions/67787147
复制相似问题