如何将一个数组项的一部分与第二个数组中的一部分数组项进行比较?

马蒂

如果我有两个带有文件的数组

arr1 = ['file1.webp', 'file2.webp', ...];
arr2 = ['file1.jpg', 'file2.png', 'file3.jpg', 'file4.jpg', ...];

我如何检查哪些数组项相等,减去*.format部分?

这个想法是,如果有两个相等的项目,webp则可以使用a和另一个来源。如果项目不匹配,则不会webp提供任何来源。两种情况都会在以后导致不同的图像处理。

我可以像这样比较两个数组中的项目: let match = arr1.find( val => arr2.includes(val) );

但这会比较每个项目。我只想比较文件名。提供文件的格式需要被截断,所以我得到:

arr1 = ['file1', 'file2', ...];
arr2 = ['file1', 'file2', 'file3', 'file4', ...];

然后,我可以过滤掉两个数组之间的所有匹配项。我一直在寻找一个真正的解决方案,但是我仍然不确定如何到达那里。

一定的表现

使用修剪文件扩展名的功能,您可以构造一个其中一个转换数组的Set。然后遍历另一个数组,并检查其变换后的项是否在Set中:

const arr1 = ['file1.webp', 'file2.webp'];
const arr2 = ['file1.jpg', 'file2.png', 'file3.jpg', 'file4.jpg'];

const transform = str => str.replace(/\.[^.]+$/, '');
const set1 = new Set(arr1.map(transform));
for (const item of arr2) {
  if (set1.has(transform(item))) {
    console.log('Match for', item);
  } else {
    console.log('No match for', item);
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将文件的一部分读入 perl 数组并查询第二个文件(最佳实践)

从perl中的一部分哈希创建一个数组

将数组复制到NumPy中另一个数组的一部分

PHP检查是否另一个数组的一部分

将numpy数组复制到另一个数组的一部分

如何在Matlab中将数组的一部分存储到另一个数组?

C# 根据另一个数组对数组的一部分进行排序

如何优雅地将数组的一部分复制到或插入另一个数组

XML数组:将一个数组作为另一部分插入另一个数组

将字符串1的一部分与第二个字符串进行比较

如何在Matlab中计算2个数组(一个是另一个的一部分)中值出现的次数?

将 numpy 数组的一部分除以一个常量

如何循环 JSON 数据并将其一部分放入另一个数组中?

如何将NumPy数组广播到另一个NumPy数组的一部分中?

尝试将数组的一部分替换为另一个数组,出现错误ValueError:分配目标为只读

当数组很大时,根据另一个数组的范围有效地分离出一部分数组

检查一个javascript数组是否包含另一个数组的所有元素或元素值的一部分

正则表达式中第二个捕获组的一部分

在一行中创建一个数组并获取元素或字符串的一部分-PHP

如何创建第一个计算的答案是第二个计算等式的一部分的循环

Postgres如何将json的一部分(包括数组)提取到另一个JSON字段中?

如何选择一个将数组作为其构造函数一部分的对象?

如果第一个列表包含另一个列表的一部分,则与第二个列表相交

如何根据第二个文件中的信息在文件中保留一部分行?

保留数组的第一个元素作为序列的一部分

如何在丢弃一个数组的一部分时合并两个不同长度的数组?

如何将一个UIViewController作为屏幕的一部分

如何引用数组的一部分?

如何加入数组的一部分