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(姓氏,职务,…)}