<!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是不是数组类型?