2017-06-22 35 views
0

如何改变students[0] '约翰' 到的关键:昵称改变键到另一个值的JavaScript

var students = []; 

    students.push({ Name: 'John', Track: 'HTML', Score: 2000 }); 

    students.push({ Name: 'Ron', Track: 'CSS', Score: 2400 }); 

    students.push({ Name: 'Jim', Track: 'javaScript', Score: 2800 }); 

因此,这将是这样的:

{ NickName: 'John', Track: 'HTML', Score: 2000 } 
+0

'学生[0] = .NickName学生[0]请将.Name;删除学生[0] .Name' –

回答

2
students[0].NickName = students[0].Name; 
delete students[0].Name; 
+1

@suresh得到OP没有要求学生[0]不是所有的学生。 –

0

this thread解释,简单,非优化方式是:

students[0].NickName = students[0].Name; 
delete students[0].Name; 

但有更多的优化和巧妙的方法来做到这一点,我让你在提到的线程中发现它们。

0

如果你想把它当作一个效用函数:

function convertNameToNickName(obj) { 
    obj.NickName = obj.Name; 
    delete obj.Name; 
} 

convertNameToNickName(students[0]); 
0

我想这个解决方案,它的工作!谢谢! :) obj.NickName = obj.Name; delete obj.Name;

+1

您是否重复[其他答案之一](https://stackoverflow.com/a/44695259)? – Pang

+1

这不是一个聊天或留言板!不要写“谢谢”作为答案,而应将其中一项工作答案标记为已接受。 –

0
var students = []; 
students.push({ Name: 'John', Track: 'HTML', Score: 2000 }); 
students.push({ Name: 'Ron', Track: 'CSS', Score: 2400 }); 
students.push({ Name: 'Jim', Track: 'javaScript', Score: 2800 }); 
Object.prototype.renameProperty = function (oldName, newName) { 
    // Check for the old property name to avoid a ReferenceError in strict mode. 
    if (this.hasOwnProperty(oldName)) { 
     this[newName] = this[oldName]; 
     delete this[oldName]; 
    } 
    return this; 
}; 

students.forEach(function(ele) { 
    ele.renameProperty('Name','Nickname') 
}) 
console.log(students) 
2

避免使用delete。阅读this

只需使用map

students = students.map(student => ({ 
    NickName: student.Name, 
    Track: student.Track, 
    Score: student.Score, 
})) 

或者用JS ES6 +

students.map(({ Name: NickName, ...student }) => ({ NickName, ...student })) 

只是一个指数

students = students.reduce((acc, curr, index) => { 
    if (index !== 0) 
     return curr 

    return ({ 
     NickName: curr.Name, 
     Track: curr.Track, 
     Score: curr.Score, 
    }) 
}, []) 
0

使用.map()我们就可以实现这一点很容易

var newArray = students.map((currentValue, index, array) => { 
    currentValue['NickName'] =currentValue['Name']; 
    delete currentValue['Name']; 
    return currentValue; 
}) 

console.log(newArray) 
相关问题