Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从多维数组中提取对象_Javascript_Arrays_Javascript Objects - Fatal编程技术网

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%!重要;}