4 回答

TA贡献1794条经验 获得超7个赞
您可以通过以下步骤执行此操作:
使用获取对象的所有条目
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"))

TA贡献1824条经验 获得超8个赞
您可以遍历对象,获取键,并使用indexOf函数对其进行分类,如下所示:
obj = {
data_a: 'a',
data_b: 'b',
user_a: 'a',
user_b: 'b'
};
let data_obj = {}, user_obj = {};
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
if(key.indexOf('data_')==0)
data_obj[key]=obj[key];
else if(key.indexOf('user_')==0)
user_obj[key]=obj[key];
}
}
console.log(data_obj);
console.log(user_obj);

TA贡献1878条经验 获得超4个赞
您可以使用for ... in迭代对象的键,然后将它们及其值分组到新对象中:
const obj = {
data_a: 'a',
data_b: 'b',
user_a: 'a',
user_b: 'b'
};
const users = {};
const data = {};
for (const k in obj) {
if (obj.hasOwnProperty(k)) {
if (k.startsWith("user_")) {
users[k] = obj[k];
} else if (k.startsWith("data_")) {
data[k] = obj[k];
}
}
}
console.log(users);
console.log(data);
添加回答
举报