• Не понимаю почему не работает for правильно?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    const arr = ["воз", "киборг", "корсет", "ЗОВ", "гробик", "костер", "сектор"];
    const map = new Map();
    const result = [];
    
    arr.forEach(item => map.set(item.toLowerCase().split("").sort().join(""), item));
    
    for (let item of map.values()) result.push(item);
    
    console.log(result); // ["ЗОВ", "гробик", "сектор"]
    Ответ написан
    1 комментарий
  • Не понимаю почему не работает for правильно?

    @Mercury13
    Программист на «си с крестами» и не только
    arr — исходные строки.
    arr2 — сортированные.
    Исходные строки, скорее всего, не будут совпадать ни с одной из сортированных — потому arr2[i]==sarr[j] во втором фрагменте, скорее всего, не выполнится.
    Я бы поступил таким образом. Сделал бы индексированный список сортированных строк и порядковый массив исходных. Поиск сортированной строки в индексированном списке. Если не обнаружена — сортированную в индексированный, исходную в порядковый.

    Что в JS будет индексированным списком — просто не знаю. Вероятно, можно обойтись массивом, присвоив sortedList[arr2[i]] = 1. Вот только как найти то, есть ли?

    UPD. Можно также воспользоваться хранилищем «ключ-значение»: ключом будет сортированная строка, значением — исходная. iamevg_ так и поступил. Единственная засада (которая хороша или плоха, в зависимости от задачи) — портит порядок строк.
    Ответ написан
    1 комментарий