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.01.2012, 05:03
|
Профессор
|
|
Регистрация: 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.
|
|
12.01.2012, 05:05
|
Профессор
|
|
Регистрация: 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.
|
|
12.01.2012, 05:05
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Livaanderiamarum, а что она, по-твоему, делает? Если массив не пустой - совпадающие элементы есть)
|
|
12.01.2012, 05:13
|
Профессор
|
|
Регистрация: 25.12.2011
Сообщений: 786
|
|
Сообщение от trikadin
|
Livaanderiamarum, а что она, по-твоему, делает? Если массив не пустой - совпадающие элементы есть)
|
Его функция находит общие элементы) и выдает массив с ними)
А нужно сравнить массивы не взирая на порядок элементов)
его функция определит равны они или нет ТОЛЬКО если не будет ни одного совпадения и выдастся пустой массив), если же будит хоть одно, то что-то да выдастся)) и придется еще потом сравнивать длины массива выданного и того который срванивали)) если длины равны то массивы равны)
|
|
12.01.2012, 05:22
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от Livaanderiamarum
|
и придется еще потом сравнивать длины массива выданного и того который срванивали)) если длины равны то массивы равны)
|
Зачем? Ему это не нужно.
Сообщение от bohdantheone
|
1) размеры массивов могут отличаться - да
|
|
|
12.01.2012, 05:25
|
Профессор
|
|
Регистрация: 25.12.2011
Сообщений: 786
|
|
Сообщение от trikadin
|
Зачем? Ему это не нужно.
|
Ну как это не нужно)! Не нужно было бы не создавал бы топик с такой просьбой))
Нет, размеры массивов не могут отличаться он же потом написал, иначе как они будут РАВНЫМИ, а соответственно ни не будут ПОХОЖИ друг на друга, при том что "в задании" ему нужно найти похожие массивы)
логика
|
|
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]))
|
|
12.01.2012, 06:20
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
P.S. если два массива одинаковой длинны --- отсортировать оба и сравнить элементы по порядку ...
|
|
12.01.2012, 11:35
|
Кандидат Javascript-наук
|
|
Регистрация: 19.10.2011
Сообщений: 124
|
|
рони,
вроде как все работает, спасибо
|
|
|
|