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

问题描述 投票:0回答:1

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

["image1.png","image2.png","image3.png","image.png"]

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

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

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

任何帮助将不胜感激。

谢谢。

javascript arrays while-loop comparison
1个回答
0
投票

一种方法是当名称和数字的组合存在于数组中时,将计数继续递增 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);

© www.soinside.com 2019 - 2024. All rights reserved.