Javascript根据对象内的另一个值向对象添加值

时间:2019-06-13 17:44:07

标签: javascript arrays object

所以我有一个数组

data = [{time:100,id:1},
        {time:300,id:2},
        {time:150,id:3},
        {time:100,id:4}]

我想基于时间值向此数组中的每个对象添加另一个字段(状态),如果(时间<200),则该字段应指示true;否则,则应指示false。 因此新数组应如下所示:

data = [{time:100,id:1,status:true},
        {time:300,id:2,status:false},
        {time:150,id:3,status:true},
        {time:100,id:4,status:true}]

2 个答案:

答案 0 :(得分:2)

您可以使用map()return来自回调的一个新对象,其中包含所有先前的道具和一个新的道具stauts

const data = [{time:100,id:1},
        {time:300,id:2},
        {time:150,id:3},
        {time:100,id:4}]
        
const res = data.map(x => ({...x,status:x.time < 200}));
console.log(res)

答案 1 :(得分:1)

您只需使用Array.prototype.map即可实现:

const data = [{
    time: 100,
    id: 1
  },
  {
    time: 300,
    id: 2
  },
  {
    time: 150,
    id: 3
  },
  {
    time: 100,
    id: 4
  }
]

console.log(data.map(el => ({ ...el,
  status: el.time > 200
})));