繁体   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