从对象数组中仅选择特定属性

时间:2018-12-20 19:01:23

标签: javascript typescript

假设我创建了这样的对象:

updates.push({
      id: this.ids[i],
      point: point,
      value: value
    });

稍后我想在JSON.stringify对象上使用updates,但是我只需要 pointvalue,例如:

updates[{point: 1, value: 12}, {point: 2, value: 24}]

为此最好的ES6解决方案是什么?

我看了一些带删除的示例,但这并不是我真正需要的,因为我不想删除ID。

3 个答案:

答案 0 :(得分:4)

如果updates是一个数组。然后您可能想要这样的东西:

const newArrayWithoutId = updates.map(({ point, value }) => {
  return {
    point,
    value,
  }
}

答案 1 :(得分:2)

({id, ...rest}) => ({...rest})太短了,不能回答,那怎么办?

const withoutId = ({id, ...rest}) => ({...rest})

const vals = [
  {id: 'a', point: 1, value: 'foo'},
  {id: 'b', point: 2, value: 'bar'},
  {id: 'c', point: 3, value: 'baz', meaning: 42}
]

const reduced = vals.map(withoutId)

console.log(reduced)

答案 2 :(得分:2)

尝试以下方法:

JSON.stringify(updates.map(({point,value})=>({point,value})));

let updates = [{id : 1, point : 1, value: 2},{id : 1, point : 1, value: 2}];
console.log(JSON.stringify(updates.map(({point,value})=>({point,value}))));