簡體   English   中英

數組比較不起作用

[英]Array comparison doesnt work

我有一個有效的數組比較(使用不同類型的代碼測試),如下所示:

 var a = [0,1,2] var b = [1,2] var match = [] var miss = [] func(a,b, match, miss); function func(a, b, matches, misses) { for (var i=0; i<b.length; i++) { for (var j=0; j<a.length; j++) { if (b[i] == a[j]) { console.log("Found"); matches.push(b[i]) } } } console.log("Matches: " + matches); console.log("Misses: " + misses); } 

通常正常。 但是這次沒有。 我有兩個數組,它們的大小不同(a大於b),並且可以具有不同的內容,例如“ 100.AB 12345”。

我無法解釋為什么我的功能在這種情況下不起作用。 有人可以幫我嗎? 它找不到任何匹配項,即使它們是匹配項,也都錯過了。

我認為這是這行:

if (b[j] == a[j])

b[j]應該是b[i]嗎? 由於a大於b ,因此使用j索引器將嘗試在b結束之后進行引用。

您好,請檢查以下代碼,即使a大於b或b大於a也會正常工作

 var a = ['a','ab','c','d','e']; var b = ['ef','f','ab','a']; var a1,b1; var match = []; var miss = []; var temp_a=a.length; var temp_b=b.length; if( temp_a > temp_b){ a1=b; b1=a; }else{ a1=a; b1=b; } func(a1,b1, match, miss); function func(a, b, matches, misses) { for (var i=0; i<b.length; i++) { for (var j=0; j<a.length; j++) { if (b[i] == a[j]) { console.log("Found"); matches.push(b[i]) } } } console.log("Matches: " + matches); console.log("Misses: " + misses); } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM