Javascript JS数组并排删除重复字符串

Javascript JS数组并排删除重复字符串,javascript,Javascript,我有一个数组,例如: var arr = ['ab', 'cd', 'cd', 'ef', 'cd']; 现在我想删除并排的重复项,在这个例子中,它位于索引1和2(cd) 结果必须是: var arr = ['ab', 'cd', 'ef', 'cd']; 我尝试了此代码,但不起作用: var uniqueNames = []; $.each(arr, function(i, el){ if($.inArray(el, uniqueNames) === -1) uniqueNames

我有一个数组,例如:

var arr = ['ab', 'cd', 'cd', 'ef', 'cd'];
现在我想删除并排的重复项,在这个例子中,它位于索引1和2(cd)

结果必须是:

var arr = ['ab', 'cd', 'ef', 'cd'];
我尝试了此代码,但不起作用:

var uniqueNames = [];
$.each(arr, function(i, el){
    if($.inArray(el, uniqueNames) === -1) uniqueNames.push(el);
});

但是这个过滤器是唯一的,我不希望这样。

您可以检查后续过滤器并过滤阵列

var数组=['ab','cd','cd','ef','cd'],
结果=array.filter((a,i,aa)=>a!==aa[i+1]);
控制台日志(结果)执行此操作的一种方法

var arr=['ab','cd','cd','ef','cd'];
var uniqueNames=[];
$。每个(arr,功能(i,el){
如果(el!=uniqueNames[i-1])uniqueNames.push(el);
});
控制台日志(uniqueNames)

一个简单的反向循环-拼接出相邻的重复项。当你不介意改变原始数组的时候。使用
splice
时,阵列的长度明显减少,这就是为什么从阵列的末尾到开头更容易工作的原因

让arr=['ab','cd','cd','ef','cd'];
for(设i=arr.length-1;i>=0;i--){
if(arr[i-1]==arr[i])arr.拼接(i,1);
}

控制台日志(arr)只需迭代数组,跟踪最后一个元素

var数据=[“ab”、“cd”、“cd”、“ef”、“cd”];
var结果=[数据[0]];
var last=数据[0];
对于(变量i=1,len=data.length;iShort
String.replace()
方法,使用扩展示例:

var arr=['ab','cd','cd','cd','ef','ef','cd','cd'],
结果=arr.join(',')。替换(/(\S+)(,\1)+/g,$1')。拆分(',');

控制台日志(结果)@JamesThorpe,所有额外的案例都应该事先提及。它适用于当前输入。分隔符可以更改,这不是问题。
['ab','cd','cd','cd','ef','cd']
的情况下会发生什么。。?
let uniqueNames = [];
let arr = ['ab', 'cd', 'cd', 'ef', 'cd'];

arr.forEach((element) => {
   if(element !== uniqueNames.slice(-1).pop()) {
      uniqueNames.push(element);
   }
});