javascript - 查找单个数组元素之间的交集

标签 javascript arrays

我有一个像这样的数组

[".a",".acc",".as",".b",".bad",".ca",".cat"]

这些数组元素应该在长字符串中搜索。

fire consumed his plane. AAC was required to have two persons. A third employee who was present at the airport. As a result, Richard was unable to escape

因此,当它搜索 ".acc" 时,它只找到一个结果。但当它搜索 ".a" 时,它会找到三个结果。现在结果重复了,这就造成了麻烦。

我想要某种方法从该数组中删除元素 ".acc"".as" 并将 "a" 保留在数组,这样我就只能搜索 ".a"

它是数组元素之间的某种交集。但我无法找到解决此问题的直接解决方案。

Summery:我在数组中有三个具有相同起始字符(.a) 的项目。我想保留长度最小的项目并删除其他两个。

最佳答案

这将使用原始数组中的非重叠字符串填充 z:

let z = [];
let cur;
['.a', '.acc', '.as', '.b', '.bad', '.ca', '.cat'].sort().forEach((x) => {
  if (!x.startsWith(cur)) {
      z.push(x);
      cur = x
  }
})

(仅当原始数组并不总是已排序时才需要 sort() 调用。)

关于javascript - 查找单个数组元素之间的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53179709/

相关文章:

javascript - 在ajax搜索完成之前添加标签到select2

javascript - 在 InDesign 中选择线程中的所有文本?

javascript - 如何从一个类中获取按钮内使用的所有类名?

c++ - 在 C 中的 16 字符数组中连接 32 位 int block

c++ - 从字符串数组中删除相邻的重复字符串?

arrays - 如何使用 Bash 打印特定的数组行?

javascript - 在javascript中创建和访问多维数组的正确方法是什么

javascript - 在 Jquery 中使用 slideToggle 时按时间降低边距

javascript - 循环遍历 jQuery 数组/将值输出到 div

arrays - 比较 2 个数组并列出差异 - Swift