亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

請高手指點!

<!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 instanceof Array)||!(arr2 instanceof Array)){return "判定結果:不通過";}

? ? ? ? ? ? if(arr1.length!=arr2.length){return "判定結果:不通過"; }

? ? ? ? ? ? var count=0;

? ? ? ? ? ?for(var i in arr1){

? ? ? ? ? ? ? ?for(var j in arr2){

? ? ? ? ? ? ? ? ? ?if(typeof arr1[i] ==typeof arr2[j]){count++;} ? ? ? ? ?

? ? ? ? ? ? ? ?}

? ? ? ? ? ?}

? ? ? ? ? ?if(count==arr1.length){return "判定結果:通過";}else{return "判定結果:不通過"}

? ? ? ? }

?

? ? ? ? document.write(arraysSimilar([1,true,null],[null,false,100]));

? ? </script>

? ? <script src="testData.js"></script>

</body>

</html>

我的篇幅比課件答案簡短很多,是否代表我的代碼功能不如課件答案的功能完善呢?我有哪些方面的bug呢?謝謝。

正在回答

1 回答

你這bug有點小多,推薦你去看下同學代碼第一和第二的,1. ?typeof 這是不對的,typeof 只能判斷基本類型,但是你的數組中可能會有引用類型,而且 typeof null也會返回Object ,所以你要先封裝一個判斷類型的函數,可用Object.prototype.toString.call()的方法,(在IE6/7/8下遇到null和undefined會失效,返回Object). 2. ? 你用的 instanceof 在頁面存在框架時,無法進行準確的判斷,所以最好?數組的判斷用Array.isArray(),?3. ?for in 對數組進行循環時,順序是不固定的,你的?? ?if(typeof arr1[i] ==typeof arr2[j]) ?幾乎不會進行這個if 條件內的語句,你需要先用sort()方法,對數組進行排序,然后再進行比較 4. ?你的count == arr1.length 貌似是多余的吧

0 回復 有任何疑惑可以回復我~
#1

_Jack_Han_ 提問者

非常感謝!
2016-05-15 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

請高手指點!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號