參考答案最后的if語句加個 else return true;為什么會出錯
<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 instanceof Array) || !(arr2 instanceof Array)) {
??????????? return false;
??????? }
??????? if (arr1.length !== arr2.length) {
??????????? return false;
??????? }
??????? var i=0,
??????? n = arr1.length,
??????? countMap1 = {},
??????? countMap2 = {},
??????? t1, t2,
??????? TYPES = ["string", "boolean", "number", "undefined", "null", "function", "date", "window"];
??????? for (i = 0; i< n; i++) {
??????????? t1 = typeOf(arr1[i]);
??????????? t2 = typeOf(arr2[i]);
??????????? if (countMap1[t1]) {
??????????????? countMap1[t1]++;
??????????? }
??????????? else {
??????????????? countMap1[t1] = 1;
??????????? }
??????????? if (countMap2[t2]) {
??????????????? countMap2[t2]++;
??????????? }
??????????? else {
??????????????? countMap2[t2] = 1;
??????????? }
??????? }
??????? function typeOf(ele) {
??????????? var r;
??????????? if (ele === null) {r = "null"}
??????????? else if (ele instanceof Array) {r = "array"}
??????????? else if (ele === window) {r = "window"}
??????????? else if (ele instanceof Date) {r = "date"}
??????????? else {r = typeof ele};
??????????? return r;
??????? }
??????? for (i = 0; i < TYPES.length; i++) {
??????????? if (countMap1[TYPES[i]] !== countMap2[TYPES[i]]) {
??????????????? return false;
??????????? }
?????????? else {return true;}//就是這一行,為什么不能寫呢,一般if語句不是都會有else的嗎?搞不懂,求大神解解惑,感謝。
??????? }
???????
??????? return true;
??????? }
??? </script>
??? <script src="testData.js"></script>
</body>
</html>
2016-08-19
這個重點是判斷失敗,如果失敗了,函數(shù)就可以返回,說明函數(shù)不相等,可以返回。但是返回true就一定要是比對完所有的數(shù)據(jù)才可以返回。如果加了else只要第一組arr1和arr2是相等的,就返回了。
2016-08-14
如果你要else就把最后的return true去掉 不然不管傳入什么都是return true的?
2016-08-14
else 后面不接受參數(shù)