我从API对象接收以下格式的数据:
{
id: 1,
first_name: 'Foo',
last_name: 'Bar',
birthdate: '1990-07-01',
birthplace: 'New York'
},
{
id: 2,
first_name: 'Mary',
last_name: 'Lou',
birthdate: '1984-12-15',
birthplace: 'Los Angeles'
}
现在,我想将此对象重新排列为多维对象(对象数组将是正确的终点吗?):
{
'New York': {
id: 1,
first_name: 'Foo',
last_name: 'Bar',
birthdate: '1990-07-01',
birthplace: 'New York'
},
'Los Angeles': {
id: 2,
first_name: 'Mary',
last_name: 'Lou',
birthdate: '1984-12-15',
birthplace: 'Los Angeles'
}
}
是否有适当的方法来做到这一点?来自PHP世界,并不十分了解如何管理。
尝试过一些事情,这就是我的初衷,但只是找回一个空对象(第一步,挂起,使用birthplace
作为属性创建多维对象,因为我不能使用“ push”功能(我只是不知道为什么)。
var myList = [
{
id: 1,
first_name: 'Foo',
last_name: 'Bar',
birthdate: '1990-07-01',
birthplace: 'New York'
},
{
id: 2,
first_name: 'Mary',
last_name: 'Lou',
birthdate: '1984-12-15',
birthplace: 'Los Angeles'
}
];
function rearrange(object) {
var newObj = {};
for(var obj in object) {
if(newObj.hasOwnProperty(obj.birthplace)) {
newObj.push(obj.birthplace)
}
newObj[obj.birthplace].push(obj);
}
return newObj;
}
console.log(rearrange(myList)); // returns: Cannot read proerty 'push' of undefined