问题描述
我有一个如下所示的数组:
I have an array which looks like this:
["A", "A", "A", "A", "B", "B", "B", "C", "C", "D", "A", "A", "B", "B", "B"]
如何过滤它,因此,一次只有一个唯一值,如下所示:
How can I filter it, so there is only one unique value at a time, like this:
['A', 'B', 'C', 'D', 'A', 'B']
什么我试过了:
我尝试了两种不同的方法,我决定先使用for循环
What I have tried:
I have tried two different approaches, I decided to use a for loop first
function uniqueInOrder(arg) {
var arr = [];
arg.split('');
for(var i = 0; i < arg.length; i++){
if(arg[i] === arg[i+1]) {arr.push(arg[i])}
}
return arr
}
但据我所知,我需要以某种方式禁用它,如果它已经找到了副本,因为我得到了这个输出:
[A, A,A,B,B,C,A,B,B]
此外,我试过这个方法:
But as far as I understand, I would need to disable it somehow from pushing if it already found the duplicate, because I get this output:
["A", "A", "A", "B", "B", "C", "A", "B", "B"]
Also, I tried this method:
array.filter(function (value, index, self) {
return self.indexOf(value) === index;
})
但是这不允许重复
But that just doesn`t allow duplicates
推荐答案
if(arg[i] != arg[i+1]) {arr.push(arg[i])}
它应该是更好,即使有更多的错误。
it should be better, even if there is more bugs.
这篇关于过滤数组以显示唯一值javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!