通过javascript中的键比较对象属性

时间:2019-10-16 14:24:43

标签: 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名称(关键字)的属性值(value)。如果Mike的价值与John不同,则用Mike的价值对Mike的价值进行变异。 有一些算法

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功能更好地编写它? Fiddle

1 个答案:

答案 0 :(得分:2)

是的,您可以缩短操作时间

double