javascript - 拆分字符串并确保结果数组中没有重复项的最有效方法是什么?

标签 javascript regex arrays

我将一个 javscript 字符串拆分成一个数组,其元素仅包含西里尔字符序列。

    var text = "где по его проекту был реализован первый в мире компьютер с хранимой в памяти программой — ACE."
    text=text.toLowerCase();
    var re = /[^йцукенгшщзхъёэждлорпавыфячсмитьбю]+/;
    words = text.split(re);

在上面的片段中,单词将包含以下内容

["где", "по", "его", "проекту", "был", "реализован", "первый", "в", "мире", "компьютер", "с", "хранимой", "в", "памяти", "программой", ""] 

我需要从数组中删除重复项。也就是说,我应该只看到一次“в”的出现。我知道我可以在拆分后通过数组执行此操作,但不确定什么是最好的方法。是否可以使用拆分正则表达式来做到这一点?

乔纳森

最佳答案

不是最有效的,但它干净简单。

text.split(re).filter(function(str, idx, txtArray) {
    return txtArray.indexOf(str) === idx; 
});

基本上,如果找到的第一个索引与迭代中的当前索引不匹配,则它是重复的。

关于javascript - 拆分字符串并确保结果数组中没有重复项的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20830690/

相关文章:

javascript - 在 JavaScript 中查找多维 JSON 对象不同级别的重复值

javascript - 从 2 个数组渲染表格

regex - 使用正则表达式提取单词...如果它存在

ruby 正则表达式 : Matching a < without a matching >

javascript - 正则表达式不应仅包含空格

arrays - 从 ColdFusion 中的 Struct/Array 访问和设置变量

javascript - 问答游戏,比较单选按钮的值来回答

javascript - Protractor 中的元素加载问题

javascript - Vue实例中的数据错误是否可以丢弃?

javascript - 如何在 NodeJS 中生成像 facebook、google+ 这样的唯一 ID