Мой цикл for не работает правильно
Привет всем!
Заранее хочу сказать, что я изучаю программирование , и вполне возможно, что я чего-то не понимаю из основ , так что моя проблема в том, что у меня есть цикл for и это для того, чтобы сортировать анаграммы, но его не работает код здесь - >
var arr = ["воз", "ЗОВ", "корсет", "киборг","киборг", "гробик", "костер", "сектор"]; /*array with elements in russian */ var arr2=[]; /* new array where we are going to write sorted elements (anagrams) from arr */ /*function sort(a,b){ return a-b; }*/ function clear (arr){ var arr3=[]; for(var i = 0 ; i<arr.length ; i++){ arr3.push(arr[i].toLowerCase().split('')); arr3[i].sort(); arr2.push(arr3[i].join('')); /* it sorts every element from arr by letters */ } var sarr=[]; /* this is new array , because we need to write sorted elements here , but only one which contains same letters */ next: for(var i = 0 ; i<arr.length; i++){ for(var j = 0 ;j<sarr.length ; j++ ){ if(arr2[i]==sarr[j]) continue next; } sarr.push(arr[i]);// ARR I } console.log(sarr); } clear(arr); console.log(arr)
поэтому, когда здесь "arr[i]", он записывает в массив sarr каждые 8 элементов(записывая в консоль), но когда здесь "arr2[i]", он записывает сюда только 3 уникальных элемента , почему он не работает правильно, Пожалуйста, скажите мне, я не понимаю . Это сработает
var arr = ["воз", "ЗОВ", "корсет", "киборг","киборг", "гробик", "костер", "сектор"]; /*array with elements in russian */ var arr2=[]; /* new array where we are going to write sorted elements (anagrams) from arr */ /*function sort(a,b){ return a-b; }*/ function clear (arr){ var arr3=[]; for(var i = 0 ; i<arr.length ; i++){ arr3.push(arr[i].toLowerCase().split('')); arr3[i].sort(); arr2.push(arr3[i].join('')); /* it sorts every element from arr by letters */ } var sarr=[]; /* this is new array , because we need to write sorted elements here , but only one which contains same letters */ next: for(var i = 0 ; i<arr.length; i++){ for(var j = 0 ;j<sarr.length ; j++ ){ if(arr2[i]==sarr[j]) continue next; } sarr.push(arr[i]); } console.log(sarr); } clear(arr); console.log(arr);
я пытался изменить это оба цикла, но ничего не работает, я пытаюсь решить эту проблему около 3-4 дней . Я знаю, как сделать это без этого обоих циклов, но я хочу знать, почему это не работает , мне интересно учиться , а не просто заставить это работать, если это неправильный путь, почему это неправильно?
Заранее спасибо !!!
Что я уже пробовал:
Я попытался изменить это без next: но он не работает, он дает мне 65 элементов, так что этот способ был неправильным ( извините, я не могу написать этот код снова, потому что я написал его пару дней назад.