首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用减少API从对象数组中删除属性

使用减少API从对象数组中删除属性
EN

Stack Overflow用户
提问于 2020-07-01 17:43:12
回答 2查看 208关注 0票数 0

我试图从对象数组中删除一个属性名称,它使用filter API正常工作,

代码语言:javascript
复制
const users = [
  { name: 'Tyler', age: 28},
  { name: 'Mikenzi', age: 26},
  { name: 'Blaine', age: 30 }
];


const myProp = users.filter(function (props) {
  delete props.name;
  return true;
});
console.table(myProp);
代码语言:javascript
复制
const myProp2 = users.reduce((people, user) => {
  console.log(people);
  console.log(user);
  delete user.name;
  return people;
}, []);

console.log(myProp2);

不过,在我尝试完成使用reduce之前的相同示例,它并不像预期的那样工作。

EN

Stack Overflow用户

发布于 2020-07-01 17:47:44

您实际上希望为此使用map,因为您正在选择将数据转换为一个新对象(类似于SQL或LINQ中的selecting或LINQ)。

const myProps = users.map(u=> ({age: u.age}))

此外,虽然过滤器方法有效,但这实际上是对过滤器方法的滥用。过滤器方法应该根据条件从数组中删除元素。您的方法可以工作,因为您返回true (它没有删除任何元素),但是在每次迭代中修改了当前值。

这是错误的做法,因为您会混淆下一个查看您的代码的人,他们会想为什么您使用过滤器作为转换数据的方法,而不是映射。

另外,也不要使用reduce,因为reduce是一个聚合函数,用于对对象执行聚合函数。因为您返回的元素的数量是相同的,所以map对此更好。

如果你想找出平均、最大、最小、中位年龄或最受欢迎的名字等等,减缩会更适合.

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

https://stackoverflow.com/questions/62682508

复制
相关文章

相似问题

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