首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较两个Json对象的值,找出对象的值和ouptut与新Json的区别

比较两个Json对象的值,找出对象的值和ouptut与新Json的区别
EN

Stack Overflow用户
提问于 2021-06-01 10:27:27
回答 2查看 134关注 0票数 0

我们有两个JSON数据,我们希望比较和得到两个键的值之间的差异,在第一个JSON数据中与JSON数据中的AVG_X进行比较。

第一个JSON-

代码语言:javascript
复制
var myObject=[
  {
    "Customer": "A",
    "Count": 47
  },
  {
    "Customer": "B",
    "Count": 5
  },
  {
    "Customer": "C",
    "Count": 1
  }
]

第二个JSON-

代码语言:javascript
复制
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中。

预期产出应该如下-

代码语言:javascript
复制
{
"Customer": "A", 
"Diff": 27
},
{
"Customer": "B", 
"Diff": 1 
},
"Customer": "C", 
"Diff": 1 
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-01 10:31:35

只需对地图进行myObject,并获得差异,并将结果存储在一个新对象中,该对象具有属性CustomerDiff

如果两个数组中的对象具有相同的Customer ,则为。

代码语言:javascript
复制
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中的任何位置,则为。

代码语言:javascript
复制
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);

票数 1
EN

Stack Overflow用户

发布于 2021-06-01 10:42:17

代码语言:javascript
复制
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);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67787147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档