我有两种长度相同的数组:
array1 of numbers: [2,1,2,3,1]
array2 of strings: ["2","2","2","2","1"]
我想在它们之间进行比较并获得差异数量而不会抛出其中一个。例如,在上面的数组中,我希望得到:2(单元格[1]的差异:1与2相比,单元格[3]:3与2相比)
答案 0 :(得分:0)
你可以创建一个for循环,将array2中的字符串转换为整数并将它们存储在array3中。然后轻松地将array3与array1进行比较。或者只是在for循环中进行比较 - 不需要创建第三个数组。
答案 1 :(得分:0)
使用三等于比较元素而不使用自动类型强制
function compareArrays(a1, a2){
var diff = 0;
a1.forEach(function(v,i) {
if(v !== a2[i]){
diff++;
}
});
return diff;
}
var array1 = [2,1,2,3,1];
var array2 = ["2","2","2","2","1"]
compareArrays(array1, array2); //return 5
答案 2 :(得分:0)
此函数返回数组之间不同的元素数。
function compareArrays(x,y){
var diff = 0;
x.forEach((elem,index)=>{
if(y[index]!=elem){
diff++;
}
});
return diff;
}
我在y [index] == elem中使用==因此1 ==' 1'是的。
答案 3 :(得分:0)
用于比较整数数组或整数字符串的JavaScript中众所周知的技巧(如您的示例)
var ll=["12","45","78"];
var l=[12,45,78];
document.write(l.join(',')==ll.join(','));