<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb18030">
<title>Untitled Document</title>
</head>
<body>
<script type="text/javascript">
/*
* param1 Array
* param2 Array
* return true or false
*/
function arraysSimilar(arr1, arr2){
if (arr1.length !== arr2.length ) return false;
var n = arr1.length;
var flag = 0;
var t1,t2;
for(var i = 0;i<n;i++){
for (var j=0;j<n;j++){
if (typeOf(arr1[i]) === typeOf(arr2[j])) {
flag++;
}
}
if (flag == n) return true;
}
return false;
}
function typeOf(arr){
var r;
if (arr === null) r='null';
else if (arr instanceof Array) r='array';
else if (arr === 'window') r = 'window';
else if (arr instanceof Date) r = 'date';
else r = typeof arr;
return r;
}
</script>
<script src="testData.js"></script>
</body>
</html>当数组内有重复类型的时候你的flag又加了一遍,你这适用于数组中都是不同类型的
建议加一个数组的判断 最后一个为啥是false我也不明白 只能归结与它不是数组 望采纳
是不是要先判断arr1和arr2是不是数组类型?