Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 12.01.2012, 04:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

bohdantheone,
Вариант...
function duplicat(b, c) {
    for (var d = [], e = {}, f = {}, a = 0; a < b.length; a++) e[b[a]] = !0;
    for (a = 0; a < c.length; a++) f[c[a]] = !0;
    for (var g in e) f[g] && d.push(g);
    return d
};
alert(duplicat([1,7,2,8,5,12,45,67],[3,4,5,1,2]))
Ответить с цитированием
  #12 (permalink)  
Старый 12.01.2012, 05:03
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от рони Посмотреть сообщение
bohdantheone,
Вариант...
function duplicat(b, c) {
    for (var d = [], e = {}, f = {}, a = 0; a < b.length; a++) e[b[a]] = !0;
    for (a = 0; a < c.length; a++) f[c[a]] = !0;
    for (var g in e) f[g] && d.push(g);
    return d
};
alert(duplicat([1,7,2,8,5,12,45,67],[3,4,5,1,2]))
твоя функция не сравнивает 2 массива и не находит равныене взирая на расположение элементов , ты не правильно понял что хотел ОП)

твоя функция даже не выдает результат РАВЕНСТВА или НЕ равенства) она выдает только общие найденные элементы) а это тут вообще не причем)

но код обфуксировал зачетно)))

Последний раз редактировалось Livaanderiamarum, 12.01.2012 в 05:16.
Ответить с цитированием
  #13 (permalink)  
Старый 12.01.2012, 05:05
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

/**
 * сравнивает 2 массива не учитывая порядок элементов
 * 
 * @param {Array}
 *            Первый массив
 * @param {Array}
 *            Второй массив
 * @return {Boolean}
 */
function test(arr, arr2){
	if(arr.length != arr2.length) return false
	var on = 0;
	for( var i = 0; i < arr.length; i++ ){
		for( var j = 0; j < arr2.length; j++ ){
			if(arr[i] === arr2[j]){
				on++
				break
			}
		}
	}
	return on==arr.length?true:false
}
//сравниваем раз
var arr = [ 'привет', 'зима', "нарядная" ];
var arr2 = [ 'нарядная', 'зима', 'привет' ];
alert(test(arr, arr2))

//сравниваем два
var arr = [ 'СТОЛ', 'зима', "нарядная" ];
var arr2 = [ 'нарядная', 'зима', 'привет' ];
alert(test(arr, arr2))

Последний раз редактировалось Livaanderiamarum, 12.01.2012 в 13:47.
Ответить с цитированием
  #14 (permalink)  
Старый 12.01.2012, 05:05
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Livaanderiamarum, а что она, по-твоему, делает? Если массив не пустой - совпадающие элементы есть)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #15 (permalink)  
Старый 12.01.2012, 05:13
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от trikadin Посмотреть сообщение
Livaanderiamarum, а что она, по-твоему, делает? Если массив не пустой - совпадающие элементы есть)
Его функция находит общие элементы) и выдает массив с ними)

А нужно сравнить массивы не взирая на порядок элементов)

его функция определит равны они или нет ТОЛЬКО если не будет ни одного совпадения и выдастся пустой массив), если же будит хоть одно, то что-то да выдастся)) и придется еще потом сравнивать длины массива выданного и того который срванивали)) если длины равны то массивы равны)
Ответить с цитированием
  #16 (permalink)  
Старый 12.01.2012, 05:22
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Livaanderiamarum
и придется еще потом сравнивать длины массива выданного и того который срванивали)) если длины равны то массивы равны)
Зачем? Ему это не нужно.

Сообщение от bohdantheone
1) размеры массивов могут отличаться - да
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #17 (permalink)  
Старый 12.01.2012, 05:25
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от trikadin
Зачем? Ему это не нужно.
Ну как это не нужно)! Не нужно было бы не создавал бы топик с такой просьбой))


Нет, размеры массивов не могут отличаться он же потом написал, иначе как они будут РАВНЫМИ, а соответственно ни не будут ПОХОЖИ друг на друга, при том что "в задании" ему нужно найти похожие массивы)

логика
Ответить с цитированием
  #18 (permalink)  
Старый 12.01.2012, 06:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Livaanderiamarum,
Сравнение двух массивов не учитывая порядок елементов))) за два прохода
function duplicat(b, c) {
    for (var d = [], e = {},a = 0; a < b.length; a++) e[b[a]]? e[b[a]]++:e[b[a]]=1 ;
    for (a = 0; a < c.length; a++) e[c[a]] && d.push(c[a]) && e[c[a]]--;
    return d.length == b.length && c.length == b.length
};
alert(duplicat([1,1,3,4,5],[5,4,3,1,1]))
alert(duplicat([1,1,3,4,5],[5,4,3,1,7]))
Ответить с цитированием
  #19 (permalink)  
Старый 12.01.2012, 06:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

P.S. если два массива одинаковой длинны --- отсортировать оба и сравнить элементы по порядку ...
Ответить с цитированием
  #20 (permalink)  
Старый 12.01.2012, 11:35
Кандидат Javascript-наук
Отправить личное сообщение для bohdantheone Посмотреть профиль Найти все сообщения от bohdantheone
 
Регистрация: 19.10.2011
Сообщений: 124

рони,
вроде как все работает, спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записать два массива в один HackerSniper Общие вопросы Javascript 2 21.10.2011 04:33
Два блока div разъезжаются при скроллинге окна браузера. call007 jQuery 0 03.04.2011 16:21
Блок переключения меню на JS, два скрипта в одном файле Dizeloid Элементы интерфейса 0 30.07.2009 12:03
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53
вставка элементов массива в текстовую форму по клику olezyk Общие вопросы Javascript 3 21.03.2009 22:01