我的代码,测试通过
function arraysSimilar(arr1, arr2){
var t_arr_type1 = Object.prototype.toString.call(arr1).toString().toLowerCase(),
t_arr_type2 = Object.prototype.toString.call(arr2).toString().toLowerCase();
console.log(t_arr_type1 + 'arr2 :'+t_arr_type2);
if(t_arr_type1 == t_arr_type2 && t_arr_type1.indexOf('array')!=-1){
try{
if(arr1.length != arr2.length){
return false;
}else{
var arr1Type = getArrayAllType(arr1),
arr2Type = getArrayAllType(arr2);
if(arr1Type.length==arr2Type.length){
for(var j = 0;j<arr1Type.length;j++){
if(arr1Type.indexOf(arr2Type[j])==-1){
return false;
}
}
return true;
}else{
return false;
}
}
}catch(e){
console.log(arr1);
console.log(arr2);
}
}else{
return false;
}
}
function getArrayAllType(arr){
var arrType = [];
for(var i=0;i<arr.length;i++){
var tmp_type = Object.prototype.toString.call(arr[i]).toString().toLowerCase();
if(tmp_type.indexOf('number')!=-1){
arrType.push('number');
}else if(tmp_type.indexOf('string')!=-1){
arrType.push('string');
}else if(tmp_type.indexOf('function')!=-1){
arrType.push('function');
}else if(tmp_type.indexOf('array')!=-1){
arrType.push('array');
}else if(tmp_type.indexOf('null')!=-1){
arrType.push('null');
}else if(tmp_type.indexOf('undefined')!=-1){
arrType.push('undefined');
}else if(tmp_type.indexOf('boolean')!=-1){
arrType.push('boolean');
}else if(tmp_type.indexOf('object object')!=-1){
arrType.push('object');
}else if(tmp_type.indexOf('date')!=-1){
arrType.push('date');
}else {
arrType.push('other');
}
}
console.log(arrType);
return arrType;
}