最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

加入同一个数组下的文件夹的文件

IT培训 admin 5浏览 0评论

加入同一个数组下的文件夹的文件

我想将具有相同文件夹的文件放入同一个数组中

这是我的代码:

const pathFile = [
  'modules/main/main1/main.js',
  'modules/server/server1/server.js',
  'modules/server/server2/server.js',
];

pathFile.forEach((p) => {
  const middle = p.split(/\//g);
  middle.pop();
  const fileFolder = middle[Math.floor(middle.length - 1) / 2];
  array.push({ folder: fileFolder, files: { name: p } });
});

这是我得到的结果:

[
  { "folder": "main", "files": { "name": "modules/main/main1/main.js" } },
  {
    "folder": "server",
    "files": { "name": "modules/server/server1/server.js" }
  },
  {
    "folder": "server",
    "files": { "name": "modules/server/server2/server.js" }
  }
]
回答如下:

您可以将reduce转换为由folder索引的对象,如果需要,创建关联的folder对象,推送到files数组,然后获取该对象的值:

const pathFile = [
  'modules/main/main1/main.js',
  'modules/server/server1/server.js',
  'modules/server/server2/server.js',
];
const obj = pathFile.reduce((a, name) => {
  const folder = name.split('/')[1];
  if (!a[folder]) {
    a[folder] = { folder, files: [] };
  }
  a[folder].files.push({ name });
  return a;
}, {});
const arr = Object.values(obj);
console.log(arr);

加入同一个数组下的文件夹的文件

我想将具有相同文件夹的文件放入同一个数组中

这是我的代码:

const pathFile = [
  'modules/main/main1/main.js',
  'modules/server/server1/server.js',
  'modules/server/server2/server.js',
];

pathFile.forEach((p) => {
  const middle = p.split(/\//g);
  middle.pop();
  const fileFolder = middle[Math.floor(middle.length - 1) / 2];
  array.push({ folder: fileFolder, files: { name: p } });
});

这是我得到的结果:

[
  { "folder": "main", "files": { "name": "modules/main/main1/main.js" } },
  {
    "folder": "server",
    "files": { "name": "modules/server/server1/server.js" }
  },
  {
    "folder": "server",
    "files": { "name": "modules/server/server2/server.js" }
  }
]
回答如下:

您可以将reduce转换为由folder索引的对象,如果需要,创建关联的folder对象,推送到files数组,然后获取该对象的值:

const pathFile = [
  'modules/main/main1/main.js',
  'modules/server/server1/server.js',
  'modules/server/server2/server.js',
];
const obj = pathFile.reduce((a, name) => {
  const folder = name.split('/')[1];
  if (!a[folder]) {
    a[folder] = { folder, files: [] };
  }
  a[folder].files.push({ name });
  return a;
}, {});
const arr = Object.values(obj);
console.log(arr);
发布评论

评论列表 (0)

  1. 暂无评论