我在过去4个小时内一直停留在一段JavaScript上!
问题是我如何像这样计算两个数组之间的相似性:
arrayA = [a,b,c,d,e,f,g];
arrayB = [c,d,e];
答案应该是三个。我目前仅有的一段代码会产生一个无限循环:(
求助
最佳答案
您可以使用(跨浏览器解决方案):
[请注意,.filter()
方法在IE8和其他旧版浏览器中将不起作用,因此我建议采用以下方法]
1)定义功能:
function count_similarities(arrayA, arrayB) {
var matches = 0;
for (i=0;i<arrayA.length;i++) {
if (arrayB.indexOf(arrayA[i]) != -1)
matches++;
}
return matches;
}
2)称之为:
var similarities = count_similarities(arrayA, arrayB);
alert(similarities + ' matches found');
如果您不关心旧版浏览器的支持,我强烈建议lonesomeday的答案。
希望能有所帮助。