Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.05.2016, 10:17
Аспирант
Отправить личное сообщение для Ermite Посмотреть профиль Найти все сообщения от Ermite
 
Регистрация: 20.10.2015
Сообщений: 32

Сравнить переменные между собой
Допустим, у меня 5 переменных. Есть какой-нибудь рациональный сравнить их между собой? Я пока остановился на этом:

if (q1 != q2 && q1 != q3 && .... && q4 != q5) {
alert ('Совпадений нет!')
} else {
alert ('Есть совпадения!')
}


Как вы поняли, если переменные все разные, то вывести надо "Совпадений нет", а если какие-либо из них имеют одинаковые значения - вывести "Есть совпадения"!
Ответить с цитированием
  #2 (permalink)  
Старый 02.05.2016, 10:27
Кандидат Javascript-наук
Отправить личное сообщение для aklis Посмотреть профиль Найти все сообщения от aklis
 
Регистрация: 27.04.2015
Сообщений: 99

какие в них данные ожидаются?
Ответить с цитированием
  #3 (permalink)  
Старый 02.05.2016, 10:41
Кандидат Javascript-наук
Отправить личное сообщение для aklis Посмотреть профиль Найти все сообщения от aklis
 
Регистрация: 27.04.2015
Сообщений: 99

forEach, filter, map, indexOF циклы и тд. Думаю много еще чего придумать можно

Последний раз редактировалось aklis, 02.05.2016 в 10:49.
Ответить с цитированием
  #4 (permalink)  
Старый 02.05.2016, 10:46
Аспирант
Отправить личное сообщение для Ermite Посмотреть профиль Найти все сообщения от Ermite
 
Регистрация: 20.10.2015
Сообщений: 32

aklis, строка со строкой
Для примера:
q1 = 'Name 1';
q2 = 'Name 2';
q3 = 'Name 3';
q4 = 'Name 4';
q5 = 'Name 5';


Значения этих переменных выбираются пользователем и могут быть одинаковыми.
Ответить с цитированием
  #5 (permalink)  
Старый 02.05.2016, 11:00
Кандидат Javascript-наук
Отправить личное сообщение для aklis Посмотреть профиль Найти все сообщения от aklis
 
Регистрация: 27.04.2015
Сообщений: 99

в массив их обернуть можно и любым перебирающим методом проверить. Я бы советовал map или filter - если нужно собрать все совпадения. Если просто установить есть ли хоть одно то хорошо подойдет indexOF
Ответить с цитированием
  #6 (permalink)  
Старый 02.05.2016, 11:09
Аспирант
Отправить личное сообщение для Ermite Посмотреть профиль Найти все сообщения от Ermite
 
Регистрация: 20.10.2015
Сообщений: 32

aklis,
о, а до этого я как-то не додумался, спасибо)
Ответить с цитированием
  #7 (permalink)  
Старый 02.05.2016, 11:10
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Можно сделать в пару строк, используя оператор spread, тип Set и метод Set.prototype.size в es6.
Ответить с цитированием
  #8 (permalink)  
Старый 02.05.2016, 11:16
Кандидат Javascript-наук
Отправить личное сообщение для aklis Посмотреть профиль Найти все сообщения от aklis
 
Регистрация: 27.04.2015
Сообщений: 99

хм
Ответить с цитированием
  #9 (permalink)  
Старый 02.05.2016, 11:26
Кандидат Javascript-наук
Отправить личное сообщение для aklis Посмотреть профиль Найти все сообщения от aklis
 
Регистрация: 27.04.2015
Сообщений: 99

var data = ["Ваня", "Петя", "Кузя", "КуКузя", "Ваня"];

var filtered = data.filter(function(item, i, arr){
  if(~arr.indexOf(item)) return true;
  return false;
});

destus, подскажи пожалуйста: почему не сработало так? Никак не пойму где я ошибся.
Ответить с цитированием
  #10 (permalink)  
Старый 02.05.2016, 11:27
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

let data = ['Name 1', 'Name 2', 'Name 3', 'Name 4', 'Name 5'],
		set = new Set(data);
	
	set.size === data.length ? alert('Совпадений нет!') : alert('Есть совпадения!');
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связанные между собой данные при передачи по GET zhurchik Общие вопросы Javascript 8 19.03.2015 16:08
Функция взаимодействия двух независимых между собой величин dmitry111 Общие вопросы Javascript 5 20.08.2012 10:51
скрипты конфликтуют между собой coshak AJAX и COMET 0 21.04.2011 11:01
Нужно сравнить дробные переменные netkent Общие вопросы Javascript 1 05.12.2010 18:30
Связь полей между собой vinnie Javascript под браузер 13 20.02.2010 17:19