[英]Copying an object to another object with specific condition
默认对象是:
var employee = {
'name': 'Hermione',
'salary': 1000
};
我的问题是,如何使用这种格式将其复制到另一个对象?
var employee = {
'Hermione': 1000
};
我试过了:
for (var prop in employee) {
console.log(prop, employee[prop]); // 'name' 'Hermione'
// what next?
}
更新:
var employees = [];
employees.push({ 'name': 'name1', 'salary': 1000 });
employees.push({ 'name': 'name2', 'salary': 2000 });
employees.push({ 'name': 'name3', 'salary': 3000 });
我要实现的目标:
var employees = [
{'name1': 1000},
{'name2': 2000},
{'name3': 3000}
];
你有那些对象的数组吗? 对于单个对象,情况非常简单:
var employee2 = {};
employee2[employee['name']] = employee['salary'];
或对于现代浏览器:
var employee2 = {
[employee['name']]: employee['salary']
};
更新
对于对象数组:
var employees = [ { name: 'name1', salary: 1000 }, { name: 'name2', salary: 2000 }, { name: 'name3', salary: 3000 } ]; var employees2 = employees.map(employee => ({[employee.name]: employee.salary})); console.dir(employees2);
对于较旧的浏览器:
var employees2 = employees.map(function(employee) {
var result = {};
result[employee['name']] = employee['salary'];
return result;
});
您应该使用Array.prototype.filter
或Array.prototype.map
var employees = []; employees.push({ 'name': 'n1', 'salary': 1000 }); employees.push({ 'name': 'n2', 'salary': 2000 }); employees.push({ 'name': 'n3', 'salary': 3000 }); var reduced = employees .reduce((res, val) => { res[val.name] = val.salary; return res; }, Object.create(null)) ; console.log('reduced', reduced); var mapped = employees .map(i => ({[i.name] : i.salary})) ; console.log('mapped', mapped);
newobj = {}; newobj [oldObj.name] = oldObj.salary
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.