Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript对象中更改对象键值_Javascript_Jquery_Json - Fatal编程技术网

如何在javascript对象中更改对象键值

如何在javascript对象中更改对象键值,javascript,jquery,json,Javascript,Jquery,Json,假设我有以下目标: obj1 = { 'patato la blaza' : { 'weight' : 5, 'height' : 90 }, 'apple ibiza' : { 'weight' : 3, 'height' : 84 } } 我想运行键并修改它们,即更改键值,如何在javascript/jQuery中执行此操作,我知道我可以这样修改值: $.each(obj1 , function(

假设我有以下目标:

obj1 = {
   'patato la blaza' : {
        'weight' : 5,
        'height' : 90
    },
    'apple ibiza' : {
        'weight' : 3,
        'height' : 84
    }
}
我想运行
并修改它们,即更改
值,如何在javascript/jQuery中执行此操作,我知道我可以这样修改

$.each(obj1 , function(i , e){
   obj1[i] = "someramdomvalue"
});
但我不太明白如何更改/操作键的值,在上面提供的对象中,我想将
patato la blaza
的值更改为
patato
apple-ibiza
更改为
apple
,我将使用正则表达式获得缩短版本,但我不知道如何将这些缩短的值作为新的
键添加到对象中。非常感谢您的帮助


注意::-我已经搜索过了,但是大多数问题都是关于如何更改对象的
值的值,而不是
键的值,可能是这样的:

const obj1={
“patato la blaza”:{
“重量”:5,
身高:90
},
“苹果伊维萨”:{
“重量”:3,
身高:84
}
};
//示例键转换
常量转换=x=>x.split(“”[0];
Object.keys(obj1).forEach(key=>{
const val=obj1[键];
删除obj1[键];
obj1[变换(键)]=val;
});

控制台日志(obj1)可能是这样的:

const obj1={
“patato la blaza”:{
“重量”:5,
身高:90
},
“苹果伊维萨”:{
“重量”:3,
身高:84
}
};
//示例键转换
常量转换=x=>x.split(“”[0];
Object.keys(obj1).forEach(key=>{
const val=obj1[键];
删除obj1[键];
obj1[变换(键)]=val;
});

控制台日志(obj1)我会在Object.keys()上使用reduce

让obj={
“patato la blaza”:{
“重量”:5,
身高:90
},
“苹果伊维萨”:{
“重量”:3,
身高:84
}
};
obj=对象.键(obj).reduce((a,b)=>{
a[b.子串(0,b.indexOf('')]=obj[b];
返回a;
}, {});

控制台日志(obj)我会在Object.keys()上使用reduce

让obj={
“patato la blaza”:{
“重量”:5,
身高:90
},
“苹果伊维萨”:{
“重量”:3,
身高:84
}
};
obj=对象.键(obj).reduce((a,b)=>{
a[b.子串(0,b.indexOf('')]=obj[b];
返回a;
}, {});

控制台日志(obj)
如果要使用
$。each()
,我将使用所需的键创建一个新属性,复制现有属性的值,然后删除旧属性:

$.each(obj1 , function(i , e){
   obj1["somenewkey"] = obj1[i];
   delete obj1[i];
});

如果要使用
$。each()
,我将使用所需的键创建一个新属性,复制现有属性的值,然后删除旧属性:

$.each(obj1 , function(i , e){
   obj1["somenewkey"] = obj1[i];
   delete obj1[i];
});

创建所有所需更改的映射,并使用新的键名称构建新对象:

var obj={
“patato la blaza”:{
“重量”:5,
身高:90
},
“苹果伊维萨”:{
“重量”:3,
身高:84
}
};
风险值变化={
“patato la blaza”:“土豆”,
“苹果伊维萨”:“苹果”
}
var res=Object.assign({},…Object.entries(obj.map)([prevKey,val])=>({[changes[prevKey]]:val}));

控制台日志(res)创建所有所需更改的映射,并使用新的键名称构建新对象:

var obj={
“patato la blaza”:{
“重量”:5,
身高:90
},
“苹果伊维萨”:{
“重量”:3,
身高:84
}
};
风险值变化={
“patato la blaza”:“土豆”,
“苹果伊维萨”:“苹果”
}
var res=Object.assign({},…Object.entries(obj.map)([prevKey,val])=>({[changes[prevKey]]:val}));

控制台日志(res)可能重复的可能重复的“谢谢”将试用并返回,TY将提供快速回答和演示:)谢谢将试用并返回,TY将提供快速回答和演示:)