ham*_*med 5 javascript arrays comparison
我有两个javascript数组,我需要比较它们.例如,假设我有这两个数组:
var array1 = ["1", "2", "3", "4"];
var array2 = ["4", "1", "3", "2"];
Run Code Online (Sandbox Code Playgroud)
这些数组实际上是相同的,我希望得到true比较的结果.这样做的最好和最快的方法是什么?
执行此操作的最佳方法和最快方法是使用跟踪其值及其计数的对象。然后我们可以看看它是否存在于第二个数组中。尝试这个
function compare(arr1, arr2){
var obj={}, len = arr1.length, i=0, isSame=true, prop;
if(arr1.length === arr2.length){
for(;i<len;i++){
if(obj[arr1[i]]){
obj[arr1[i]] = obj[arr1[i]]+1;
} else{
obj[arr1[i]] =1;
}
}
i=0, len = arr2.length;
for(;i<len;i++){
if(obj[arr2[i]]){
obj[arr2[i]] = obj[arr2[i]]-1;
} else{
isSame = false;
break;
}
}
for (prop in obj){
if(obj[prop] > 0){
isSame = false;
break;
}
}
}else{
isSame = false;
}
return isSame;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1104 次 |
| 最近记录: |