Javascript 在JS中为您提供了函数后,如何重命名对象键
所以我得到了下面的一个问题Javascript 在JS中为您提供了函数后,如何重命名对象键,javascript,object,return,key,rename,Javascript,Object,Return,Key,Rename,所以我得到了下面的一个问题 function translateKey(student, keyToChange, translation) { } /* This function will take an object representing a student's data, a key that needs changing, and its English translation. E.g. const student = { prénom: 'Carla', su
function translateKey(student, keyToChange, translation) { }
/*
This function will take an object representing a student's data, a key that needs changing, and its English translation.
E.g.
const student = {
prénom: 'Carla',
surname: 'Bruni',
job: 'Artist'
}
const keyToChange = 'prénom'
const translation = 'firstName'
It returns a **new object** with the key successfully translated into English.
E.g.
{
firstName: 'Carla',
surname: 'Bruni,
job: 'Artist'
}
*/
我从…开始
function translateKey(student, keyToChange, translation) {
const translated = {keyToChange : translation};
const newObject = {};
// not really sure where to go from here, help please!
因为您的目标是重命名一个对象键,所以您可以开始查看谁有很好的答案。
你可以拿的答案作为例子,或许可以这样做:
function translateKey(student, keyToChange, translation) {
var newObject = Object.assign({}, student);
// Do nothing if the names are the same
if (keyToChange === translation) {
return newObject;
}
// Check for the old property name to avoid a ReferenceError in strict mode.
if (newObject.hasOwnProperty(keyToChange)) {
newObject[translation] = newObject[keyToChange];
delete newObject[keyToChange];
}
return newObject;
}
如果这是你必须为一门课做的练习,请阅读我链接的另一个问题,以了解其他方法,并尝试正确理解解决方案,例如为什么检查hasOwnProperty
很重要,或者为什么我们使用===
而不是简单的=
if (old_key !== new_key) {
Object.defineProperty(o, new_key,
Object.getOwnPropertyDescriptor(o, old_key));
delete o[old_key];
}
从这个答案中:
你想去哪里?您计划了哪些步骤?我想返回一个带有翻译版本的keythank you BSO的新对象,但由于某种原因,我在返回一个新对象时遇到了一个错误。。。AssertionError:expected{Object(prénom,姓氏,…)}不等于{Object(prénom,姓氏,…)@newtojs我编辑了我的答案,现在函数返回一个新对象:)非常感谢你,我在过去的一天里一直在做这个,没有任何进展@Newtoj很乐意为您提供帮助,如果您认为这个答案可以解决您的问题。我收到以下错误,因为我需要返回一个新对象,请提供有关如何执行此操作的提示?感谢AssertionError:预期{Object(姓氏,职务,…}不等于{Object(姓氏,职务,…)}