Сравнить 2 списка

Поддержка
  • Собственно в одном списке urlы в другом id . id вшиты в в середину urlа.
    задача оставить urlы. собственно механизм подскажите

  • @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

    [[NEW_LIST]] = [[URL_LIST]].filter(function(u) {return [[ID_LIST]].some(function(e) {return u.indexOf(e) >= 0 } ) } )
    
  • Спасибо.. вот такое решение скинули
    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;
    });
    });

  • @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 и условия