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 массива не учитывая порядок элементов * * @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, а что она, по-твоему, делает? Если массив не пустой - совпадающие элементы есть)
|
Цитата:
А нужно сравнить массивы не взирая на порядок элементов) его функция определит равны они или нет ТОЛЬКО если не будет ни одного совпадения и выдастся пустой массив), если же будит хоть одно, то что-то да выдастся)) и придется еще потом сравнивать длины массива выданного и того который срванивали)) если длины равны то массивы равны) |
Цитата:
Цитата:
|
Цитата:
Нет, размеры массивов не могут отличаться он же потом написал, иначе как они будут РАВНЫМИ, а соответственно ни не будут ПОХОЖИ друг на друга, при том что "в задании" ему нужно найти похожие массивы) логика;) |
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])) |
P.S. если два массива одинаковой длинны --- отсортировать оба и сравнить элементы по порядку ...:write:
|
рони,
вроде как все работает, спасибо |
Часовой пояс GMT +3, время: 05:36. |