数组比较不起作用



我有一个工作数组比较(用不同类型的代码测试),看起来像这样:

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[i] b[j]吗?由于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);
}

相关内容

  • 没有找到相关文章