Сообщение от Livaanderiamarum
|
моя функция оптимальнее раз в 10)) можешь проверить))
|
Проверил )))
var a = [],b = [];
for (var i=0; i<1000; i++) {
a[i] = i;
b[i] = i;
}
var time = new Date();
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
};
rez_duplicat = duplicat(a,b);
time_duplicat = new Date((new Date()).getTime()-time.getTime()).getTime();
time = new Date();
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
}
rez_test = test(a,b);
time_test = new Date((new Date()).getTime()-time.getTime()).getTime();
alert("duplicat : " + rez_duplicat + " => time : " + time_duplicat + "\n"
+ "test : " + rez_test + " => time : " + time_test);