如何在不强制转换的情况下获得两种类型数组之间的差异数
How can I get the number of differences between two types of array without casting
我有两种长度相同的数组:
array1: [2,1,2,3,1]
array2: ["2","2","2","2","1"]
我想比较它们并在不转换的情况下获得差异的数量。例如,对于上面的数组,我期望得到输出:2
您可以创建一个 for 循环,将 array2 中的字符串转换为整数并将它们存储在 array3 中。然后轻松地将 array3 与 array1 进行比较。或者只是在 for 循环内进行比较 - 无需创建第三个数组。
使用三重相等来比较没有自动类型强制的元素
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
此函数return数组之间不同的元素数。
function compareArrays(x,y){
var diff = 0;
x.forEach((elem,index)=>{
if(y[index]!=elem){
diff++;
}
});
return diff;
}
我在 y[index]==elem 中使用 == 因此 1=='1' 为真。
JavaScript 中的一个众所周知的技巧,用于比较整数数组或整数字符串(如您的示例)
var ll=["12","45","78"];
var l=[12,45,78];
document.write(l.join(',')==ll.join(','));
我有两种长度相同的数组:
array1: [2,1,2,3,1]
array2: ["2","2","2","2","1"]
我想比较它们并在不转换的情况下获得差异的数量。例如,对于上面的数组,我期望得到输出:2
您可以创建一个 for 循环,将 array2 中的字符串转换为整数并将它们存储在 array3 中。然后轻松地将 array3 与 array1 进行比较。或者只是在 for 循环内进行比较 - 无需创建第三个数组。
使用三重相等来比较没有自动类型强制的元素
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
此函数return数组之间不同的元素数。
function compareArrays(x,y){
var diff = 0;
x.forEach((elem,index)=>{
if(y[index]!=elem){
diff++;
}
});
return diff;
}
我在 y[index]==elem 中使用 == 因此 1=='1' 为真。
JavaScript 中的一个众所周知的技巧,用于比较整数数组或整数字符串(如您的示例)
var ll=["12","45","78"];
var l=[12,45,78];
document.write(l.join(',')==ll.join(','));