首页 > 解决方案 > 按名称对 javascript 对象中的属性进行分组和提取

问题描述

obj = {
  data_a: 'a',
  data_b: 'b',
  user_a: 'a',
  user_b: 'b'
  // and many more
};

从上述对象中,如何根据名称对属性进行分组和提取?我正在尝试获取以 data_ 开头的所有名称,然后将它们加载到一个新对象中,然后对以 user_ 开头的名称执行相同操作

有什么好方法可以做到这一点?

标签: javascript

解决方案


您可以通过以下步骤执行此操作:

  • 使用获取对象的所有条目Object.entries()
  • 使用filter()它并获取所有key以所需子字符串开头的条目。
  • 用于Object.fromEntries()将条目转换回对象。

这是代码

const obj = {
  data_a: 'a',
  data_b: 'b',
  user_a: 'a',
  user_b: 'b'
};

const filterByKey = (obj, string) => Object.fromEntries(Object.entries(obj).filter(([k, v]) => k.startsWith(string)))
console.log(filterByKey(obj, "data"));
console.log(filterByKey(obj, "user"))


推荐阅读