Javascript 循环遍历对象并创建新数组
我有一个对象数组,我试图通过map函数循环它们,并创建如下输出: 所需输出Javascript 循环遍历对象并创建新数组,javascript,arrays,Javascript,Arrays,我有一个对象数组,我试图通过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)
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"]
如何将每个循环推入新阵列
谢谢映射对象数组时,只需返回一个包含所需值的数组即可
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=[约翰、简、杰克]
const dataSet=users.map(user=>([user.firstName,user.lastName,user.role]))
log(数据集)
映射对象数组时,只需返回一个包含所需值的数组
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=[约翰、简、杰克]
const dataSet=users.map(user=>([user.firstName,user.lastName,user.role]))
console.log(数据集)
实际上,您已经非常接近了。只要做你想推的数组。请尝试以下代码:
users.forEach((item) => {
dataSet.push([item.profile.firstName, item.profile.lastName, item.profile.role]);
});
事实上,你们很接近。只要做你想推的数组。请尝试以下代码:
users.forEach((item) => {
dataSet.push([item.profile.firstName, item.profile.lastName, item.profile.role]);
});
假设您的原始数据如下所示:
data: [
...
{
profile: {
firstname: "John",
lastname: "Doe",
role: "Sales"
}
},
...
];
您可以这样做:
var dataSet = data.map((person) => {
let profile = person.profile;
return [
profile.firstname,
profile.lastname,
profile.role
];
});
希望这有帮助 假设原始数据如下所示:
data: [
...
{
profile: {
firstname: "John",
lastname: "Doe",
role: "Sales"
}
},
...
];
您可以这样做:
var dataSet = data.map((person) => {
let profile = person.profile;
return [
profile.firstname,
profile.lastname,
profile.role
];
});
希望这有帮助 您可以用一种更通用的方法来实现这一点,方法是允许使用map在对象上创建任意数量的属性,例如
dataset=[
{名字:'John',姓氏:'Doe',角色:'Sales'},
{名字:'Jane',姓氏:'Doe',角色:'HR'},
{名字:“杰克”,名字:“Doe”,角色:“经理”}
];
var result=dataset.map(obj=>Object.keys(obj.map)(key=>obj[key]);
console.log(result)
您可以通过使用map在对象上允许任意数量的属性来实现这一点,例如
dataset=[
{名字:'John',姓氏:'Doe',角色:'Sales'},
{名字:'Jane',姓氏:'Doe',角色:'HR'},
{名字:“杰克”,名字:“Doe”,角色:“经理”}
];
var result=dataset.map(obj=>Object.keys(obj.map)(key=>obj[key]);
console.log(result)
您是如何获得该输出的?实际输入是什么?看起来输出数组中应该有6个项,因为每次迭代要推送2个项。作为一种旁白,如果您没有使用.map()
的返回值,那么您使用的.map()
不正确,应该使用.forEach()
相反。您的对象数组是包含对象的数组吗[[{…}],{…}]
或对象数组[{…},{…}]
您是如何获得该输出的?实际输入是什么?看起来输出数组中应该有6个项,因为每次迭代要推送2个项。作为一种旁白,如果您没有使用.map()
的返回值,那么您使用的.map()
不正确,应该使用.forEach()
相反。您的对象数组是包含对象的数组吗[[{…}],{…}]
,或者一个对象数组[{…},{…}]
@4castle你敢绝对正确。我已经更新了it@4castle你敢说完全正确。我已经更新了