Javascript 如何从对象键名中删除字符串?

Javascript 如何从对象键名中删除字符串?,javascript,Javascript,我正在尝试从任何对象键名称中删除“personal_” 我尝试运行一个循环并获取对象键名,然后对其使用replace函数,但它没有删除personal\uu var对象={ 活动:错误, 个人用户元数据:{ 名字:“乔恩”, 姓:“doe”, }, 个人应用程序元数据:{ 数据:'废话', }, 电邮:'jondoe@example.com' } for(对象中的名称){ 名称.替换('personal_uu','') } console.log(object)下面的代码片段就可以了 var

我正在尝试从任何对象键名称中删除“personal_”

我尝试运行一个循环并获取对象键名,然后对其使用replace函数,但它没有删除
personal\uu

var对象={
活动:错误,
个人用户元数据:{
名字:“乔恩”,
姓:“doe”,
},
个人应用程序元数据:{
数据:'废话',
},
电邮:'jondoe@example.com'
}
for(对象中的名称){
名称.替换('personal_uu','')
}

console.log(object)
下面的代码片段就可以了

var obj={
活动:错误,
个人用户元数据:{
名字:“乔恩”,
姓:“doe”,
},
个人应用程序元数据:{
数据:'废话',
},
电邮:'jondoe@example.com'
}
for(obj中的名称){
if(name.startsWith('personal_')){
var replaced_key=name.replace('personal_','');
obj[替换的_键]=obj[名称];
删除obj[名称];
}
}

console.log(obj)
与@marmeladze相同,但具有
高阶函数

const对象={
活动:错误,
个人用户元数据:{
名字:“乔恩”,
姓:“doe”,
},
个人应用程序元数据:{
数据:'废话',
},
电邮:'jondoe@example.com'
}
对象。键(对象)
.filter(key=>key.startsWith(`personal\`)
.forEach(键=>{
object[key.replace(`personal_u`,``)]=object[key];
删除对象[键];
})

console.log(object)
我理解您关于不将修改过的键分配回对象的观点,但在您的示例中,所有其余的键都被删除了。抱歉,我错过了一件事。我以为所有的钥匙都有
personal
前缀。我现在已经修好了