Javascript 从多维数组中提取对象
假设我们有以下数组:Javascript 从多维数组中提取对象,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,假设我们有以下数组: const admins = [ { adminName: 'admin 1', devices: [ { deviceName: 'device 1', os: 'desktop', appVersion: 1.2.0 }, { deviceName: 'device 2',
const admins = [
{
adminName: 'admin 1',
devices: [
{
deviceName: 'device 1',
os: 'desktop',
appVersion: 1.2.0
},
{
deviceName: 'device 2',
os: 'desktop',
appVersion: 1.4.0
}
]
},
{
adminName: 'admin 2',
devices: [
{
deviceName: 'device 1',
os: 'ios',
appVersion: 1.4.0
},
{
deviceName: 'device 2',
os: 'android',
appVersion: 1.1.0
}
]
}
]
我正在尝试将来自不同管理员的所有设备收集到一个数组中,如下所示
const adminDevices = admins.map(admin => admin.devices);
但这将返回一个数组,其中包含另一个包含设备的数组
我尝试了以下方法:
const adminDevices = admins.map((admin) => {
return admin.devices.reduce((accumulator, value) => {
return value;
}, {});
});
但正如所料,这只返回第一个设备值。关于如何在不必声明空数组或集合并手动填写的情况下使用任何数组方法完成此任务,有何建议?使用:
常量管理员=[
{
adminName:'管理员1',
设备:[
{deviceName:'Device1',os:'desktop',appVersion:'1.2.0'},
{deviceName:'Device2',os:'desktop',appVersion:'1.4.0'}
]
},
{
adminName:'管理员2',
设备:[
{deviceName:'Device1',os:'ios',appVersion:'1.4.0'},
{deviceName:'Device2',os:'android',appVersion:'1.1.0'}
]
}
];
const adminDevices=admins.flatmappadmin=>admin.devices;
console.logadminDevices如果您要继续并平面映射设备列表,我还将尝试将adminName与每个设备相关联。这样,在解组时不会丢失任何信息 常量管理员=[{ adminName:'管理员1', 设备:[ {deviceName:'Device1',os:'desktop',appVersion:'1.2.0'}, {deviceName:'Device2',os:'desktop',appVersion:'1.4.0'} ] }, { adminName:'管理员2', 设备:[ {deviceName:'Device1',os:'ios',appVersion:'1.4.0'}, {deviceName:'Device2',os:'android',appVersion:'1.1.0'} ] }]; const adminDevices=admins.flatMap{adminName,devices}=> devices.mapdevice=>{adminName,…device}; adminDevices.forEachdevice=>console.logJSON.stringifydevice; .作为控制台包装{top:0;最大高度:100%!重要;}