我说我有
let a = [{
foo: 1
bar: 1
baz: 1
},{
foo: 2
bar: 2
baz: 2
},{
foo: 3
bar: 3,
baz: 3
}];
如何删除每个对象中的bar
以便
a = [{ foo: 1, baz: 1 }, { foo: 2, baz: 2 }, { foo: 3, baz: 3 }];
我简化了示例,但每个对象都可以有很多属性。
答案 0 :(得分:3)
使用.map
将数组的每个元素转换为另一个元素。另请注意,您的代码段的语法无效;对象的属性需要用逗号分隔。
const input = [{
foo: 1,
bar: 1
},{
foo: 2,
bar: 2
},{
foo: 3,
bar: 3
}];
const output = input.map(({ foo }) => ({ foo }));
console.log(output);
如果你想删除一个属性而不是保存一些特定属性,你可以使用object rest / spread做类似的事情:
const input = [{
foo: 1,
bar: 1,
baz: 1
},{
foo: 2,
bar: 2,
baz: 2
},{
foo: 3,
bar: 3,
baz: 3
}];
const output = input.map(({ foo, ...otherProps }) => ({ ...otherProps }));
console.log(output);
答案 1 :(得分:1)
使用Object.assign
,这样就不会丢失第一个对象并创建一个具有所需属性的新对象:
const a = [{
foo: 1,
bar: 1,
baz: 1
},{
foo: 2,
bar: 2,
baz: 2
},{
foo: 3,
bar: 3,
baz: 3
}];
const b = Object.assign(a.map(({foo, baz}) => ({foo, baz}) ), {});
console.log( JSON.stringify(b) )
console.log(a)