@paini, это обычное поведение .sort(), используйте вместо этого _sort_arr()
@GhostZ said in Сортировка списка по имени:
Выполнить кода: _sort_arr([[LIST]]), для сортировки в обратном порядке: _sort_arr([[LIST]], false)
@baracuda в выполнить код
var urls = [
"https://example.com/api/v1/users/12345/posts",
"https://example.com/api/v1/users/abcde/posts",
"https://example.com/api/v1/users/67890/posts",
"https://example.com/api/v1/users/fghij/posts"
];
var ids = ["12345", "67890"];
// Массив для хранения отфильтрованных URL-адресов
var filteredUrls = [];
// Перебираем каждый URL
for (var i = 0; i < urls.length; i++) {
var url = urls[i];
// Перебираем каждый ID
for (var j = 0; j < ids.length; j++) {
var id = ids[j];
// Проверяем, содержится ли ID в URL
// String.prototype.indexOf() возвращает -1, если подстрока не найдена
if (url.indexOf(id) !== -1) {
// Если ID найден, добавляем URL в результат и выходим из внутреннего цикла,
// чтобы не добавлять один и тот же URL дважды
filteredUrls.push(url);
break;
}
}
}
// Выводим результат
log(filteredUrls);
@baracuda said in Сравнить 2 списка:
Спасибо.. вот такое решение скинули
let ids = [[ID]]; // Список ID
let urls = [[URL_LIST]]; // Список URL[[URL_LIST]] = urls.filter(function(url) {
return ids.some(function(id) {
return url.indexOf(id) > -1;
});
});
Под капотом этого js кода находится простой цикл. Для лучшего понимания и возможности потом вносить изменения в логику работы, лучше используйте цикл "Foreach" в BAS и условия