在javascript中按键比较对象属性

在javascript中按键比较对象属性,javascript,arrays,typescript,javascript-objects,Javascript,Arrays,Typescript,Javascript Objects,我试图通过键来比较对象属性。 以下是一些示例数据: const data = [{ "name": "John", "value": "30" }, { "name": "Cindy", "value": "50" }, { "name": "Mathew", "value": "80" }, { "name": "Mike", "value": "35" }]; 所以我想比较John和Mike名字(key)的属性值(value)

我试图通过键来比较对象属性。 以下是一些示例数据:

const data = [{
    "name": "John",
    "value": "30"
}, {
    "name": "Cindy",
    "value": "50"
}, {
    "name": "Mathew",
    "value": "80"
}, {
    "name": "Mike",
    "value": "35"
}];
所以我想比较John和Mike名字(key)的属性值(value)。若Mike的值和John的值不同,则将Mike的值与John的值进行变异。 有一些算法

data.map(obj => {
  for (const key in obj) {
    if (obj.hasOwnProperty(key)) {
      let johnValue;
      let mikeValue;

      if(obj[key] == 'John') {
        johnValue = Number(obj.value)
      }
      else if(obj[key] == 'Mike') {
        mikeValue = Number(obj.value)
      }

      if(johnValue != mikeValue) {
        newData = {
          ...data,
          "Mike":  johnValue
        } 
      }
    }
  }
})
在其执行之后,我希望数据如下

const data = [{
        "name": "John",
        "value": "30"
    }, {
        "name": "Cindy",
        "value": "50"
    }, {
        "name": "Mathew",
        "value": "80"
    }, {
        "name": "Mike",
        "value": "30"
    }];
有没有一种方法可以使用ES6的一些功能编写得更好?
是的,你可以做得短一点

const MikeRecordInd = data.findIndex(v => v.name === 'Mike')
const JohnRecord = data.find(v => v.name === 'John')

if (data[MikeRecordInd].value !== JohnRecord.value) {
  newData = [...data]
  newData[MikeRecordInd] = { name: 'Mike', value: JohnRecord.value }
} 

它有用吗?你得到了什么?请添加想要的结果。对于名称为Mike的对象,您的首选输出是什么??