[英]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.