我将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; });
基本上,如果找到的第一个索引与迭代中的当前索引不匹配,则它是重复的.