Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.01.2017, 08:14
Новичок на форуме
Отправить личное сообщение для greyzak Посмотреть профиль Найти все сообщения от greyzak
 
Регистрация: 08.01.2017
Сообщений: 2

Помогите с удалением анаграмм из массива
Начал изучать JS. Вот делаю задание из учебника learn.javascript: удалить анаграммы из массива. Код написал. Вроде все работает. Только вот загвоздка: почему-то удаляет и гробик и киборг, с остальным нормально работает. Вопрос почему?
Другой код, который будет удалять все правильно, знаю. Вопрос именно в том почему здесь гробик и киборг удаляются вместе.
function aclean(arr){
	var tmpArr = [];
	var tmp;
	for (var i = 0; i < arr.length-1; i++){
		for (var j = i+1; j < arr.length; j++){
			if(arr[i].length != arr[j].length) continue;
			tmp = "";
			for (var a = 0; a < arr[i].length; a++){
				for (var b = 0; b<arr[j].length; b++){
					if(arr[i][a].toLowerCase == arr[j][b].toLowerCase){
						tmp += arr[i][a];
						break;
					}
				}
			}
			if(arr[i] == tmp){
				arr[i] = null;
				break;
			}
		}
	}
	for (i = 0; i < arr.length; i++){
		if(arr[i] !== null){
			tmpArr.push(arr[i]);
		}  
	}
	return tmpArr;
}
var arr = ["воз", "дома", 'икиборг', "киборг", "корсет", "ЗОВ", "мода", "гробик", 'гробики', "костер", "сектор"];
alert(aclean(arr));
Ответить с цитированием
  #2 (permalink)  
Старый 08.01.2017, 09:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

greyzak,
строка 10 медитировать до просветления
Ответить с цитированием
  #3 (permalink)  
Старый 08.01.2017, 16:42
Новичок на форуме
Отправить личное сообщение для greyzak Посмотреть профиль Найти все сообщения от greyzak
 
Регистрация: 08.01.2017
Сообщений: 2

Смедиритовал. Закачал скрипт на сайт и увидел, что он сравнивает киборг и корсет, и после этого собирает мне в tmp киборг. Получается что все буквы у них равны? В итоге увидел, что пропущены скобки у метода str.toLowerCase(). В итоге:

alert("к".toLowerCase); // Выводит код функции
alert("к".toLowerCase()); // Выводит результат функции
alert("к".toLowerCase == "о".toLowerCase); //true
alert("к".toLowerCase() == "о".toLowerCase()); //false
Ответить с цитированием
  #4 (permalink)  
Старый 08.01.2017, 16:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

greyzak,
ок!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите создать генератор массива karakym Общие вопросы Javascript 10 23.11.2016 08:40
Помогите с удалением ненужных символов sergofedor06 Элементы интерфейса 6 29.03.2016 10:31
Помогите удалить элемент двумерного массива Dorsaj Общие вопросы Javascript 5 18.10.2010 18:49
Помогите разобраться с повторением при генерации массива (Javascript) JsLoveR Javascript под браузер 4 16.12.2009 15:26