Javascript比较两个数组并获取不匹配的值

标签 javascript arrays

非常感谢您在这方面提供的所有帮助。

我有两个数组:

  • 第一个数组包含没有扩展名的文件名
  • 第二个数组包含具有扩展名 的文件名。

我需要输出第三个数组,在本例中为 FinalArray,其中包含不在 ArrayFileName 中的所有 ArrayFileNameWExt 的列表大批。

我知道我有一个关于寻找匹配项目的话题,这很棒。但我在查找不匹配的项目时遇到问题。我将 == 比较更改为 !==,这给了我一个文件名一百次。

感谢你在这方面的帮助,Maxine

var ArrayFileName = ['one', 'two', 'three', 'three', 'five', 'six', 'ten'];
var ArrayFileNameWExt = ['one.txt', 'two.txt', 'three.txt', 'ten.wmf', 'eleven.cgm'];
var FinalArray = [];

for (var i = 0; i < ArrayFileName.length; i++) {
    for (var j = 0; j < ArrayFileNameWExt.length; j++) {
        var temp = ArrayFileNameWExt[j].split(".");
        if(ArrayFileName[i]!==temp[0]){
            FinalArray.push(ArrayFileNameWExt[j]);
            break;
        }
    }
}

最佳答案

您可以使用一个简单的过滤器并返回拆分的第一部分不在 ArrayFileName 数组中的所有项目。

var ArrayFileName = ['one', 'two', 'three', 'three', 'five', 'six', 'ten'];
var ArrayFileNameWExt = ['one.txt', 'two.txt', 'three.txt', 'ten.wmf', 'eleven.cgm'];

var final = ArrayFileNameWExt.filter(function(item) {
  return !ArrayFileName.includes(item.split('.')[0]);
})

console.log(final);

如果您使用的是相当旧的 javascript 版本,includes 数组方法可能不存在。可以改用以下代码。

var ArrayFileName = ['one', 'two', 'three', 'three', 'five', 'six', 'ten'];
var ArrayFileNameWExt = ['one.txt', 'two.txt', 'three.txt', 'ten.wmf', 'eleven.cgm'];

var final = ArrayFileNameWExt.filter(function(item) {
  var name = item.split('.')[0];
  for (var i = 0; i < ArrayFileName.length; i++) {
    if (ArrayFileName[i] === name) return false;
  }
  return true;
})

console.log(final);

关于Javascript比较两个数组并获取不匹配的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54241674/

相关文章:

javascript - 如何在 PuppeteerJS 中迭代所有 <li> 以从 <ul> 句柄获取文本内容?

javascript - 对象字面量中的 `get` 是什么意思?

附加到二维数组的 Javascript

c - 在 C 中访问字符指针数组的内容

javascript - Vanilla JS : How to target an input element by the input-field's name ("name" in DOM tree)?

javascript - 如何使用 javascript 回发到不同的表单

javascript - Vue.js 2.x 选择内部组件未获取值

ruby - 如何在 Ruby 中对数组进行分组和求和?

javascript - 如何在Javascript中按数组键对象中的值获取键?

Javascript删除稀疏数组上的项目并调整长度错误