如何根据现有文件名在 javascript 中递增文件名

How to increment a filename in javascript based on existing filenames

提问人:nightrain90 提问时间:3/11/2023 最后编辑:nightrain90 更新时间:3/11/2023 访问量:24

问:

我正在创建一个 javascript 程序,它允许将图像上传到拖放区域,不允许重复的文件名。如果我已经上传了以下文件名(在这种情况下,为了方便起见,只会使用字符串):

[“图像1.png”,“图像2.png”,“图像3.png”,“图像.png”]

我想上传另一张名为“image.png”的图像,我如何连续循环上一个数组,比较新值,同时根据是否找到该值递增文件名。

预期结果是新图像将是“image4.png”。

我意识到这可能需要 for 和 while 循环的某种组合,但我无法弄清楚实现这一点所需的确切条件。

任何帮助将不胜感激。

谢谢。

JavaScript 数组 while-loop 比较

评论


答:

0赞 Unmitigated 3/11/2023 #1

一种方法是当数组中存在名称和数字的组合时,将计数不断递增 1(选中 )。Array#includes

let names = ["image1.png","image2.png","image3.png","image.png"];
let newName = "image.png";
let [, name, ext] = newName.match(/^(\w+)(\.\w+)$/);
let count = 0;
while (names.includes(name + (count ? count : "") + ext)) {
  ++count;
}
console.log('final name:', name + (count ? count : "") + ext);