javascript - 按名称对 javascript 对象中的属性进行分组和提取
问题描述
obj = {
data_a: 'a',
data_b: 'b',
user_a: 'a',
user_b: 'b'
// and many more
};
从上述对象中,如何根据名称对属性进行分组和提取?我正在尝试获取以 data_ 开头的所有名称,然后将它们加载到一个新对象中,然后对以 user_ 开头的名称执行相同操作
有什么好方法可以做到这一点?
解决方案
您可以通过以下步骤执行此操作:
- 使用获取对象的所有条目
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"))
推荐阅读
- amazon-web-services - AWS SAM 模板获取具有内在函数的规则名称
- c - 代码上的这个表达式有什么问题?
- javascript - 无法弄清楚为什么我在处理事务时收到 VM 异常:恢复错误
- android - APK 生成两个文件
- python - Python selenium 无法切换窗口
- qt - Docker xtb 无法连接到显示器
- react-native - 开发模式和生产模式有什么区别?
- node.js - MongoDB:如何在嵌套在两个数组中的字段上创建索引?
- tcp - 在 NS3 中丢弃数据包后,TCP New Reno 设置阈值的位置
- android - LiveData 的 ViewModel SavedStateHandler.get 无法根据文档设置默认值?