从数组中的 JSON 对象中删除属性 [重复]

Posted

技术标签:

【中文标题】从数组中的 JSON 对象中删除属性 [重复]【英文标题】:Remove attribute from JSON objects in a array [duplicate] 【发布时间】:2019-03-11 13:19:56 【问题描述】:

我有一个 json 对象数组。

var user =[  id: 1, name: 'linto', img: 'car' ,
   id: 2, name: 'shinto', img: 'ball' ,
   id: 3, name: 'hany', img: 'kite'  ]

从这里是想从数组的所有元素中删除属性img,所以输出看起来像这样。

var user =[  id: 1, name: 'linto' ,
   id: 2, name: 'shinto' ,
   id: 3, name: 'hany'  ]

有没有办法在java脚本中做到这一点。

【问题讨论】:

【参考方案1】:

您可以将.map() 与对象解构一起使用:

let data =[
   id: 1, name: 'linto', img: 'car' ,
   id: 2, name: 'shinto', img: 'ball' ,
   id: 3, name: 'hany', img: 'kite' 
];
  
let result = data.map((img, ...rest) => rest);

console.log(result);

【讨论】:

【参考方案2】:

Array.prototype.map()

map() 方法创建一个新数组,其结果是在调用数组中的每个元素上调用提供的函数。

您可以通过以下方式使用map()

var user =[  id: 1, name: 'linto', img: 'car' ,
   id: 2, name: 'shinto', img: 'ball' ,
   id: 3, name: 'hany', img: 'kite'  ]
  
user = user.map(u => (id: u.id, name: u.name));
console.log(user);

【讨论】:

我们可以在映射的时候添加一些条件吗?就像我们要检查 Id 是否为空一样。 @SouradeepBanerjee-AIS, map() 旨在遍历所有数组项,您可以根据某些条件操作这些项。如果你想过滤掉一些项目,那么你可以使用filter():) 谢谢,我使用了过滤功能,并且能够做到。 @SouradeepBanerjee-AIS,不客气:) @SouradeepBanerjee-AIS,期待投票:)

以上是关于从数组中的 JSON 对象中删除属性 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

根据JavaScript中的属性值从对象数组中选择[重复]

如何从数组中删除重复值?当数组内的对象属性未定义时,我的代码失败

如何将 json 对象键转换为不同的数组来删除重复项

从 Java 中的 2 个相同格式的 JSON 对象中删除重复值项

Angular2 从 JSON 数组中删除重复项

从数组中拆分出对象属性和值[重复]