我正在尝试比较两个数组并显示不匹配的值。
使用 jQuery,我有这个:
$.each(array1, function(key, value)
{
var index = $.inArray(value, array2);
if(index != -1)
{
console.log(index);
}
});
使用上面的代码,我可以找到匹配的数组元素。
例如,array1 如下所示:
"GESU687543", "TCNU315504", "TGHU394463"
array2 看起来像这样:
"TCNU315504", "TRIU805499", "CMAU029901", "GESU687543", "TGHU394463", "NEUL0325B"
但是控制台只会显示 3, 0, 4,因为这些值存在于两个数组中。我想做完全相反的事情。我需要找到不匹配的值并将这些值显示到页面。
因此,使用上面的示例,应显示到控制台的值是:
"TRIU805499", "CMAU029901", "NEUL0325B"
编辑
SO告诉我这个问题可能是重复的:How to get the difference between two arrays in Javascript?
话虽如此,该页面正在使用 JavaScript。我在这里严格使用 jQuery。
最佳答案
您需要切换数组并迭代array2
以使用array1
的索引进行过滤。
var array1 = ["GESU687543", "TCNU315504", "TGHU394463"],
array2 = ["TCNU315504", "TRIU805499", "CMAU029901", "GESU687543", "TGHU394463", "NEUL0325B"],
result = array2.filter(function (a) {
return array1.indexOf(a) === -1;
});
console.log(result);
ES6 带有 Array#includes
:
var array1 = ["GESU687543", "TCNU315504", "TGHU394463"],
array2 = ["TCNU315504", "TRIU805499", "CMAU029901", "GESU687543", "TGHU394463", "NEUL0325B"],
result = array2.filter(a => !array1.includes(a));
console.log(result);
关于javascript - jQuery 比较数组并显示不匹配的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44834269/