gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:50:14 24 4
gpt4 key购买 nike

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

我有两个数组:

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

我需要输出第三个数组,在本例中为 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com