如何在JavaScript中从另一个字典的键更改字典的键?
我有一本字典如何在JavaScript中从另一个字典的键更改字典的键?,javascript,dictionary,Javascript,Dictionary,我有一本字典dict1:{Name:“Alex”,3:“61”}。我创建了一个重复的dictionarydict2,其中包含相同的键值对。我将dict2作为一个参数发送给一个函数,然后将其转换为这些值:dict2={1:“Alex”,未定义:“61”} 有人能帮我写一段代码,把未定义的代码替换成原来的dict中的代码吗?最后一句话必须是:dict={1:“Alex”,3:“61”} 获取并存储属性值“未定义”,删除“未定义”属性;迭代dict1的属性值,如果属性值与存储值匹配,则将dict2处的
dict1:{Name:“Alex”,3:“61”}
。我创建了一个重复的dictionarydict2
,其中包含相同的键值对。我将dict2作为一个参数发送给一个函数,然后将其转换为这些值:dict2={1:“Alex”,未定义:“61”}
有人能帮我写一段代码,把未定义的代码替换成原来的dict中的代码吗?最后一句话必须是:dict={1:“Alex”,3:“61”}代码>
获取并存储属性值“未定义”
,删除“未定义”
属性;迭代dict1
的属性值,如果属性值与存储值匹配,则将dict2
处的属性设置为dict1
处匹配的属性名称,将存储变量设置为设置属性的值
dict1={
姓名:“亚历克斯”,
3: "61"
};
第2条={
1:“亚历克斯”,
未定义:“61”
};
设{undefined:val}=dict2;
删除第2条[“未定义”];
for(让[key,prop]的Object.entries(dict1)){
如果(prop==val)dict2[key]=val;
}
console.log(dict2)
获取并存储属性值“未定义”
,删除“未定义”
属性;迭代dict1
的属性值,如果属性值与存储值匹配,则将dict2
处的属性设置为dict1
处匹配的属性名称,将存储变量设置为设置属性的值
dict1={
姓名:“亚历克斯”,
3: "61"
};
第2条={
1:“亚历克斯”,
未定义:“61”
};
设{undefined:val}=dict2;
删除第2条[“未定义”];
for(让[key,prop]的Object.entries(dict1)){
如果(prop==val)dict2[key]=val;
}
console.log(dict2)代码>您可以执行以下操作:
在第一个对象(dict1)上迭代并创建一个新对象,比如临时对象,其中键和值是反向的。所以temp看起来像{Alex:Name,61:3}
迭代dict2并在键“undefined”处获取值(本例中为61),然后从反向对象读取值以获取3。将其用作键(3)并输入值(61)
从dict2中删除键“未定义”
var dict1={
姓名:“亚历克斯”,
3: "61"
};
变量2={
1:“亚历克斯”,
未定义:“61”
};
var temp={};
用于(第1条中的变量i){
温度[1[i]]=i;
}
for(dict2中的var键){
如果(键==“未定义”){
var val=dict2[键];
dict2[temp[val]]=val;
}
}
删除第2条[“未定义”];
console.log(dict2)代码>您可以执行以下操作:
在第一个对象(dict1)上迭代并创建一个新对象,比如临时对象,其中键和值是反向的。所以temp看起来像{Alex:Name,61:3}
迭代dict2并在键“undefined”处获取值(本例中为61),然后从反向对象读取值以获取3。将其用作键(3)并输入值(61)
从dict2中删除键“未定义”
var dict1={
姓名:“亚历克斯”,
3: "61"
};
变量2={
1:“亚历克斯”,
未定义:“61”
};
var temp={};
用于(第1条中的变量i){
温度[1[i]]=i;
}
for(dict2中的var键){
如果(键==“未定义”){
var val=dict2[键];
dict2[temp[val]]=val;
}
}
删除第2条[“未定义”];
console.log(dict2)
该方法返回OP中描述的预期结果。您可以选择使用JSON.stringify()
,.replace()
JSON.parse(JSON.stringify(dict2.replace(/undefined/,3))
该方法返回OP中描述的预期结果。您也可以选择使用JSON.stringify()
,.replace()
JSON.parse(JSON.stringify(dict2.replace(/undefined/,3))
…此代码仅适用于一个未定义的值。当我尝试使用这本词典时,var dict2={1:“Alex”,未定义:“61”,未定义:“London”},下面的代码是failingvar dict1={1:“Alex”,年龄:“61”,家庭:“伦敦”};var dict2={1:“Alex”,未定义:“61”,未定义:“London”};以下代码不工作。你能修复它吗?@Kenz在javascript中,对象只能有一个键。在本例中,有两处未定义为键。第二个将覆盖第一个。因此您的dict2
看起来像{1:“Alex”,未定义的“London”},换句话说,您的对象只能有一个未定义的键,在这种情况下,解决方案有效。对于可以获取键值的dict,有什么替代方案pairs@Kenz可以使用对象,但必须确保键不同。是否可以创建像undefined1、undefined2等键,而不是undefined
。在您的情况下?…此代码仅适用于一个未定义的值。当我尝试使用这本词典时,var dict2={1:“Alex”,未定义:“61”,未定义:“London”},下面的代码是failingvar dict1={1:“Alex”,年龄:“61”,家庭:“伦敦”};var dict2={1:“Alex”,未定义:“61”,未定义:“London”};以下代码不工作。你能修复它吗?@Kenz在javascript中,对象只能有一个键。在本例中,有两处未定义为键。第二个将覆盖第一个。因此您的dict2
看起来像{1:“Alex”,未定义的“London”},换句话说,您的对象只能有一个未定义的键,在这种情况下,解决方案有效。对于可以获取键值的dict,有什么替代方案pairs@Kenz可以使用对象,但必须确保键不同。在您的情况下,是否可以创建像undefined1、undefined2等键而不是undefined
?
dict1={Name:"Alex", 3: "61"};
dict2={Name:"Alex", 3: "61"}; //created a copy of original dictionary
function(dict2){
//some function that converts dict2 to the following value.
}
console.log(dict2); //dict2={1: "Alex",undefined: "61"}
//now i want to write the code to substitute the undefined key-value pair to the one present in the original.
//my final dict has to be as follows:
dict={1: "Alex",3: "61"};