Вы также можете использовать новый Intl.Collator().compare
, для каждого MDN он более эффективен при сортировке массивов. Недостатком является то, что он не поддерживается старыми браузерами. MDN заявляет, что он вообще не поддерживается в Safari. Необходимо проверить его, поскольку он утверждает, что поддерживается Intl.Collator
.
При сравнении большого количества строк, например при сортировке больших массивов, лучше создать объект Intl.Collator и использовать функцию, предоставленную свойством сравнения
blockquote >["Foo", "bar"].sort(Intl.Collator().compare); //["bar", "Foo"]
Смысл ввода файла - предоставить файл . Имена, которые идут с ним, - это «все, что производитель браузера хочет использовать», они не гарантируют, что они вообще имеют какое-либо отношение к имени файла в файловой системе.
Вы не можете изменить то, что отправляет браузер.
Если вы собираетесь использовать имя, отправленное браузером, вам понадобится , чтобы убедиться, что оно действительно для того, что вы собираетесь с ним делать (например, убедитесь, что оно включает только символы которые разрешены в именах файлов в вашей файловой системе). Это делает его чем-то, что должно обрабатываться на сервере (как и любые другие данные, предоставленные клиентом).