首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从对象数组中删除多个键

从对象数组中删除多个键
EN

Stack Overflow用户
提问于 2021-01-12 09:52:20
回答 2查看 281关注 0票数 0

假设我们有一个对象数组:

代码语言:javascript
复制
var obj = [{a: 1, b: 2, c: 3, d: 4, e: 5 },{a: 6, b: 7, c: 
8, d: 9, e: 0 }];

我们希望从这两个对象中删除键c,e。

怎么做呢?我发现的方法之一是:

代码语言:javascript
复制
['c', 'e'].forEach(e => delete obj[e]); //for object

有没有其他的方法,所以我们不必使用双for循环。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-12 09:55:57

一种方法是将.map()对象破坏结合使用。

代码语言:javascript
复制
var obj = [
  { a: 1, b: 2, c: 3, d: 4, e: 5 },
  { a: 6, b: 7, c: 8, d: 9, e: 0 },
];

var newObj = obj.map(({ c, e, ...rest }) => rest);
console.log(newObj)

这将创建一个具有新对象的新数组,其中包含除ce以外的所有其他键。

票数 4
EN

Stack Overflow用户

发布于 2021-01-12 10:01:57

您有两个选项来解决这个问题:

  1. 通过使用对象破坏map(({ a,b,c,d,e }) => ({a,b,d})
  2. 使用使用[Rest参数] { c, e, ...rest }增强选项1
  • 如下所示的Object destructuring const obj = { a: 1, b: 2, c: 3, d: 4, e: 5 } var {c, e} = obj; // c = 3, e = 5
  • 使用选项2,您将拥有c,e隐式名称和名为restthe remaining items。在此之后,您只需要获得rest项。

选项1

代码语言:javascript
复制
var obj = 
[
  { a: 1, b: 2, c: 3, d: 4, e: 5 },
  { a: 6, b: 7, c: 8, d: 9, e: 0 },
];
console.log(obj.map(({ a,b,c,d,e }) => ({a,b,d})));

选项2

代码语言:javascript
复制
var obj = 
[
  { a: 1, b: 2, c: 3, d: 4, e: 5 },
  { a: 6, b: 7, c: 8, d: 9, e: 0 },
];
         
console.log(obj.map(({ c, e, ...rest }) => rest));
                           // ...rest: the same as `a,b,d`

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65681500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档