这是我的目标:
{Mary : 'Engineer', Jane : 'Doctor'}
我想把它变成这种格式:
{[Name: 'Marry', Occupation: 'Engineer'], [Name: 'Jane', Occupation: 'Doctor']}
如何使用javascript进行操作?
答案 0 :(得分:1)
只需遍历第一个对象并将元素放在您想要的位置。
var obj = {Mary : 'Engineer', Jane : 'Doctor'};
var people = [];
for(var name in obj){
var occ = obj[name];
people.push({Name: name, Occupation: occ});
}
您在问题中显示的示例对象使用无效语法。你想要的是对象的数组,这就是这段代码的作用。
答案 1 :(得分:1)
您希望遍历数据中的键并为每个键创建一个新对象,其名称和职业属性。类似的东西:
function makeNameOccupation(data) {
return Object.keys(data).map(c => {
return {name: c, occupation: data[c]};
});
}
console.log(makeNameOccupation({Mary : 'Engineer', Jane : 'Doctor'}))
对于原始对象中的每个键(人名),您将其映射到具有name
和occupation
属性的对象。由于您有名称(作为键),您可以轻松地从原始对象中获取占用,并构建新记录。
如果你是这样的话,那可以缩小为:
return Object.keys(data).map(c => ({name: c, occupation: data[c]}));
答案 2 :(得分:1)
var result = [];
var i = "";
for (i in yourJSON) {
// i is the key
result.push({Name: i, Occupation: yourJSON[i]});
}
来自How to access key itself using javascript
问候
答案 3 :(得分:1)
尝试使用Object.keys()
,Array.prototype.map()
var data = {
"Mary": 'Engineer',
"Jane": 'Doctor'
}
var res = Object.keys(data).map(function(name) {
return {
"Name": name,
"Occupation": data[name]
}
});
console.log(JSON.stringify(res, null, 2))
答案 4 :(得分:0)
您想要的是无效的,您需要对象的数组 :
[{Name: 'Marry', Occupation: 'Engineer'}, {Name: 'Jane', Occupation: 'Doctor'}]
你可以这样做:
var people = []
var person = {Name: 'Jane', Occupation: 'Doctor'};
people.push(person);
答案 5 :(得分:0)
所以你有一个看起来像这样的对象
var originalPeopleObj = {Mary : 'Engineer', Jane : 'Doctor'}
您想要做的是获取对象中人名的列表。
var names = Object.keys(originalPeopleObj);
这将创建一组人名
names = ["Mary", "Jane"];
现在,您必须将这些名称映射到originalPeopleObj
var newPeople = [];
for(var i = 0; i < names.length ; i++) {
var peopleObj = {};
peopleObj[i].name = names[i];
peopleObj[i].occupation = originalPeopleObj[names[i]];
}
答案 6 :(得分:0)
您可以遍历对象的键并构建一个新的对象数组。
var object = { Mary: 'Engineer', Jane: 'Doctor' },
result = Object.keys(object).map(function (key) {
return { Name: key, Occupation: object[key] };
});
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
&#13;