我有一个对象数组,我试图通过map函数遍历它们并按如下方式创建输出:
所需的输出
dataSet = [
[John, Doe, Sales],
[Jane, Doe, HR],
[Jack, Doe, Manager]
]
我的对象数组:
[[object],[object],[object]]
这是我到目前为止所尝试的内容:
users.map((item) => {
dataSet.push(item.profile.firstName, item.profile.role)
})
然而我的输出:
["John","Jane","Jack"]
如何将每个循环推入新阵列?
谢谢
答案 0 :(得分:2)
实际上,你非常接近。只需制作想要推送阵列的内容。请尝试以下代码:
users.forEach((item) => {
dataSet.push([item.profile.firstName, item.profile.lastName, item.profile.role]);
});
答案 1 :(得分:1)
当您映射对象数组时,您应该返回一个包含所需值的数组。
const john = { firstName: 'John', lastName: 'Doe', role: 'Sales' }
const jane = { firstName: 'Jane', lastName: 'Doe', role: 'HR' }
const jack = { firstName: 'Jack', lastName: 'Doe', role: 'Manager' }
const users = [ john, jane, jack ]
const dataSet = users.map(user => ([ user.firstName, user.lastName, user.role ]))
console.log(dataSet)

答案 2 :(得分:1)
假设您的原始数据如下:
data: [
...
{
profile: {
firstname: "John",
lastname: "Doe",
role: "Sales"
}
},
...
];
你可以这样做:
var dataSet = data.map((person) => {
let profile = person.profile;
return [
profile.firstname,
profile.lastname,
profile.role
];
});
希望这有帮助!
答案 3 :(得分:0)
您可以通过使用 map 在对象上允许任意数量的属性,以更通用的方式执行此操作,例如
dataset = [
{firstName: 'John', lastName: 'Doe', role: 'Sales'},
{firstName: 'Jane', lastName: 'Doe', role: 'HR'},
{firstName: 'Jack', lastName: 'Doe', role: 'Manager'}
];
var result = dataset.map(obj => Object.keys(obj).map(key => obj[key]));
console.log(result)