Javascript 从多个字符串生成数组

Javascript 从多个字符串生成数组,javascript,arrays,string,Javascript,Arrays,String,我有一个filename变量,它返回一个由多个文件名组成的字符串 我想将所有文件名加入到一个数组中 我尝试了很多方法,但都不管用 这是我的密码: console.log(文件名) 返回: 4ca9da0b-177b-4e8b-ab10-a9633720c1c8getg3434yy.jpg c721af11-5e6a-43ce-8acc-c9ab86c94c6fhe45yu45uy54y45uj4ju.jpg 3f8e602c-aa64-4c8f-ac5e-ad824bfbfc34h34yh3hy

我有一个filename变量,它返回一个由多个文件名组成的字符串

我想将所有文件名加入到一个数组中

我尝试了很多方法,但都不管用

这是我的密码:

console.log(文件名)

返回:

4ca9da0b-177b-4e8b-ab10-a9633720c1c8getg3434yy.jpg
c721af11-5e6a-43ce-8acc-c9ab86c94c6fhe45yu45uy54y45uj4ju.jpg
3f8e602c-aa64-4c8f-ac5e-ad824bfbfc34h34yh3hyjk5 456j.png
fb05e659-be7a-4f81-8f16-5fb270121b3brjk5ryjkj64iju6i.jpg
我想将它们加入如下数组:

[a950e85b-7cec-487d-9186-38d131d83772g34ygh3435hyu4uu.jpg,
4ca9da0b-177b-4e8b-ab10-a9633720c1c8getg3434yy.jpg,
c721af11-5e6a-43ce-8acc-c9ab86c94c6fhe45yu45uy54y45uj4ju.jpg,
3f8e602c-aa64-4c8f-ac5e-ad824bfbfc34h34yh3hyjk5 456j.png,
fb05e659-be7a-4f81-8f16-5fb270121b3brjk5ryjkj64iju6i.jpg]
[
  'c56f6f49-197c-46a4-8f33-eb92c7486410g34ygh3435hyu4uu.jpg','c','5','6','f','6','f','4','9','-','1','9','7','c','-','4','6','a','4','-','8','f','3','3','-','e','b','9','2','c','7','4','8','6','4','1','0','g','3','4','y','g','h','3','4','3','5','h','y','u','4','u','u','.','j','p','g',
  undefined,
]
[
  'c56f6f49-197c-46a4-8f33-eb92c7486410g34ygh3435hyu4uu.jpg','c','5','6','f','6','f','4','9','-','1','9','7','c','-','4','6','a','4','-','8','f','3','3','-','e','b','9','2','c','7','4','8','6','4','1','0','g','3','4','y','g','h','3','4','3','5','h','y','u','4','u','u','.','j','p','g',
  undefined
]
[
  '14ac4973-cdf8-4657-9075-d81c288a7dc1h34yh3hyjk5 456j.png','1','4','a','c','4','9','7','3','-','c','d','f','8','-','4','6','5','7','-','9','0','7','5','-','d','8','1','c','2','8','8','a','7','d','c','1','h','3','4','y','h','3','h','y','j','k','5',' ','4','5','6','j','.','p','n','g',
  undefined
]
[
  '6a9214e7-6840-445f-98c8-c40bb660727drjk5ryjkj64iju6i.jpg','6','a','9','2','1','4','e','7','-','6','8','4','0','-','4','4','5','f','-','9','8','c','8','-','c','4','0','b','b','6','6','0','7','2','7','d','r','j','k','5','r','y','j','k','j','6','4','i','j','u','6','i','.','j','p','g',
  undefined
]
[
  '1534bb5c-6ab1-4d26-a9d0-6ec73b377272getg3434yy.jpg','1','5','3','4','b','b','5','c','-','6','a','b','1','-','4','d','2','6','-','a','9','d','0','-','6','e','c','7','3','b','3','7','7','2','7','2','g','e','t','g','3','4','3','4','y','y','.','j','p','g',
  undefined
]
[
  'c090778c-feab-4c4d-925a-462d289cbf4ehe45yu45uy54y45uj4ju.jpg','c','0','9','0','7','7','8','c','-','f','e','a','b','-','4','c','4','d','-','9','2','5','a','-','4','6','2','d','2','8','9','c','b','f','4','e','h','e','4','5','y','u','4','5','u','y','5','4','y','4','5','u','j','4','j','u','.','j','p','g',
  undefined
]



我试过:

let array = [];
for (let index = 0; index <= filename.length; index++) {
const element = filename[index];
array.push(element);
}
console.log(array);

谢谢你的回答

编辑:完整代码

import { Request, Response } from "express";
import { File } from "formidable";
import Formidable from "formidable-serverless";
import fs from "fs";
import { v4 as uuidv4 } from "uuid";

export const config = {
  api: {
    bodyParser: false,
  },
};
export default function uploadFormFiles(req: Request, res: Response) {
  return new Promise(async (resolve, reject) => {
    const form = new Formidable.IncomingForm({
      multiples: true,
      keepExtensions: true,
    });

    form
      .on("file", (name: string, file: File) => {
        const filename = uuidv4() + file.name;
        let array = [];
        for (let index = 0; index <= filename.length; index++) {
          const element = filename[index];
          array.push(element);
        }
        console.log(array);

        const data = fs.readFileSync(file.path);
        fs.writeFileSync(`public/upload/${filename}`, data);
        fs.unlinkSync(file.path);
      })
      .on("aborted", () => {
        reject(res.status(500).send("Aborted"));
      })
      .on("end", () => {
        resolve(res.status(200).send("done"));
      });

    await form.parse(req);
  });
}


常量数组=filename.split('\n')

常量数组=filename.split('\n')

根据我的猜测,对于表单中的每一行,您将收到一个“文件”事件。然后您可以存储每个文件名,最后在“结束”事件中,您知道文件的完整列表:

import { Request, Response } from "express";
import { File } from "formidable";
import Formidable from "formidable-serverless";
import fs from "fs";
import { v4 as uuidv4 } from "uuid";

export const config = {
  api: {
    bodyParser: false,
  },
};
export default function uploadFormFiles(req: Request, res: Response) {
  return new Promise(async (resolve, reject) => {
    const form = new Formidable.IncomingForm({
      multiples: true,
      keepExtensions: true,
    });
    const arr = [];
    form
      .on("file", (name: string, file: File) => {
        const filename = uuidv4() + file.name;
        arr.push(filename);

        const data = fs.readFileSync(file.path);
        fs.writeFileSync(`public/upload/${filename}`, data);
        fs.unlinkSync(file.path);
      })
      .on("aborted", () => {
        reject(res.status(500).send("Aborted"));
      })
      .on("end", () => {
        console.log(arr);
        resolve(res.status(200).send("done"));
      });

    await form.parse(req);
  });
}

根据我的猜测,对于表单中的每一行,您将收到一个“文件”事件。然后您可以存储每个文件名,最后在“结束”事件中,您知道文件的完整列表:

import { Request, Response } from "express";
import { File } from "formidable";
import Formidable from "formidable-serverless";
import fs from "fs";
import { v4 as uuidv4 } from "uuid";

export const config = {
  api: {
    bodyParser: false,
  },
};
export default function uploadFormFiles(req: Request, res: Response) {
  return new Promise(async (resolve, reject) => {
    const form = new Formidable.IncomingForm({
      multiples: true,
      keepExtensions: true,
    });
    const arr = [];
    form
      .on("file", (name: string, file: File) => {
        const filename = uuidv4() + file.name;
        arr.push(filename);

        const data = fs.readFileSync(file.path);
        fs.writeFileSync(`public/upload/${filename}`, data);
        fs.unlinkSync(file.path);
      })
      .on("aborted", () => {
        reject(res.status(500).send("Aborted"));
      })
      .on("end", () => {
        console.log(arr);
        resolve(res.status(200).send("done"));
      });

    await form.parse(req);
  });
}
解决方案: 文件名的生成非常奇怪。。。它是从TypeScript生成的,文件名是从一个对象中的多个数组生成的……所以我使用纯JS获得了文件名:

 const fields = new Formidable.IncomingForm({
      multiples: true,
      keepExtensions: false,
    });

    fields.parse(req, (err, fields, files) => {
    let filename = files.file.map((a) => uuidv4() + a.name);
    }
 const fields = new Formidable.IncomingForm({
      multiples: true,
      keepExtensions: false,
    });

    fields.parse(req, (err, fields, files) => {
    let filename = files.file.map((a) => uuidv4() + a.name);
    }
解决方案: 文件名的生成非常奇怪。。。它是从TypeScript生成的,文件名是从一个对象中的多个数组生成的……所以我使用纯JS获得了文件名:

 const fields = new Formidable.IncomingForm({
      multiples: true,
      keepExtensions: false,
    });

    fields.parse(req, (err, fields, files) => {
    let filename = files.file.map((a) => uuidv4() + a.name);
    }
 const fields = new Formidable.IncomingForm({
      multiples: true,
      keepExtensions: false,
    });

    fields.parse(req, (err, fields, files) => {
    let filename = files.file.map((a) => uuidv4() + a.name);
    }


告诉我们什么是
filee
。在第二次迭代时,您似乎在对字符串进行迭代,这会导致您看到的输出出现混乱。如何获取所有文件名?@Terry我很抱歉,文件名应该是文件名。我从项目代码中复制了它,所以忘了更改它,更新了代码,包含完整的details@Reyno我从一个表单中获得它,该表单有一个文件输入字段,用户可以选择多个文件并将其上载到服务器所有文件都可以正常工作,但我无法将文件名加入到一个数组中,向我们展示
filee
是什么。在第二次迭代时,您似乎在对字符串进行迭代,这会导致您看到的输出出现混乱。如何获取所有文件名?@Terry我很抱歉,文件名应该是文件名。我从项目代码中复制了它,所以忘了更改它,更新了代码,包含完整的details@Reyno我从一个表单中得到它,该表单有一个文件输入字段,用户可以选择多个文件并将其上载到服务器所有文件都正常工作,但我无法将文件名加入到阵列中。欢迎加入堆栈溢出!这实际上是一个评论,而不是一个答案。再重复一点。因为Op并没有给出一个合适的例子,所以我们无法知道字符串上的拆分是否是答案,如果是,那么它就不值得一次测试answer@mplungjan我认为这确实是一个答案,因为它回答了给定的问题。其他分隔符可能是\r或\0,但带有OP问题的分隔符无法确定sure@malarres请看我编辑的评论它没有工作它返回:['b0662a2a-6d5a-45f9-b020-abfc3d292afag34ygh3435hyu4uu.jpg']['CC0CC4C4C3-7e95-4780-ad14-712C77D6f16lang1024 05H34YH3HYJK5456J.png']['71c1f303-1ee3-4dda-be15-DAEDBFD8D25GETG344YY.jpg']['82b65749-b7cd-4547-a5e4-e9eaa0d1908crjk5ryjkj64iju6i.jpg']['98a00c69-1b31-402e-b132-15698f9dff40he45yu45uy54y45uj4ju.jpg']@mplungjan我想你可能是对的。没有足够的信息来提供准确的答案。老实说,我没有意识到答案和评论之间有很大的区别,但我现在明白了。感谢链接!欢迎访问Stack Overflow!这确实是一个评论,而不是一个答案。有点代表性。因为Op没有举一个恰当的例子,我们不知道字符串上的拆分是否是答案,如果是,那么就不值得一次尝试answer@mplungjan我认为这确实是一个答案,因为它回答了给定的问题。其他分隔符可能是\r或\0,但对于OP问题,我们无法知道答案sure@malarres请查看我编辑的评论,它不起作用,返回:“CC0C43-749-7-7-45-5-5-4-4-7-7-7-7-45-5-5-4-4-4-4-4-4-8-4-4-14-14-14-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-5-7-7-7-5-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-19-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-14-7-7-7-7-7-7-7-7-7-7-7-7-8-.jpg']@mplungjan我想你可能是对的。没有足够的信息提供准确的答案。老实说,我没有意识到答案和评论之间有很大的区别,但我现在明白了。感谢链接!感谢你的回答我已经找到了解决方案…文件名的生成非常奇怪…它的生成从TypeScript不知何故文件名是从一个对象内的多个数组生成的…我在底部添加了解决方案我的问题谢谢你的回答我已经找到了解决方案…文件名生成非常奇怪…它从TypeScript生成不知何故文件名是从一个对象内的多个数组生成的…我添加了解决方案归根结底,我的问题是