在Javascript中,如何映射元素可以拆分为多个元素的数组?

在Javascript中,如何映射元素可以拆分为多个元素的数组?,javascript,arrays,Javascript,Arrays,假设我有一个这样的物体: var families = [ { dad: 'bob', mom: 'sue', income: 10 }, { dad: 'john', mom: 'jane', income: 5 } ]; var people = []; for (var index = 0; index < families.length; index++) { people.push(families[index].dad); people.pus

假设我有一个这样的物体:

var families =
[
    { dad: 'bob', mom: 'sue', income: 10 },
    { dad: 'john', mom: 'jane', income: 5 }
];
var people = [];
for (var index = 0; index < families.length; index++)
{
    people.push(families[index].dad);
    people.push(families[index].mom);
}
是否有一种奇特的方式将其转换为以下内容:

[ 'bob', 'sue', 'john', 'jane' ];
我知道我可以这样做:

var families =
[
    { dad: 'bob', mom: 'sue', income: 10 },
    { dad: 'john', mom: 'jane', income: 5 }
];
var people = [];
for (var index = 0; index < families.length; index++)
{
    people.push(families[index].dad);
    people.push(families[index].mom);
}
但这并不是我想要的:

[ [ 'bob', 'sue' ], [ 'john', 'jane' ] ]

有什么内置的可以做我想做的吗?谢谢

您可以在
.map
中对属性进行解构,返回一个数组,然后
.flat()
对该数组执行以下操作:

var系列=[
{爸爸:“鲍勃”,妈妈:“苏”,收入:10},
{爸爸:“约翰”,妈妈:“简”,收入:5}
];
常量名称=族
.map(({dad,mom})=>[dad,mom])
.flat();
console.log(名称)您可以使用以下功能:

let族=
[
{爸爸:“鲍勃”,妈妈:“苏”,收入:10},
{爸爸:“约翰”,妈妈:“简”,收入:5}
];
const result=族。reduce((res,item)=>{
return[…res,item.dad,item.mom]
}, [])
console.log(结果)
  • 使用.map的单行代码
  • 创建嵌套数组,然后使用.flat
var族=
[
{爸爸:“鲍勃”,妈妈:“苏”,收入:10},
{爸爸:“约翰”,妈妈:“简”,收入:5}
];
console.log(families.map(it=>[it.dad,it.mom]).flat())
最后使用
.flat()