javascript - 删除数组中最接近的值

时间:2017-12-09 14:08:42

标签: javascript arrays

我尝试删除数组中的邻域值。项目从一个数组移动到另一个数组,之后如果两个相邻元素相似,则必须将它们删除。等链条。 经验不足以理解我做错了什么。

let arr = ["w", "w", "s", "n", "d", "a", "a", "d", "o", "w", "f", "f", "d", "e", "n", "n", "n"];

var unique = arr.filter(function(elem, index, self) {
  return index === self.indexOf(elem);

});

console.log('unique', unique);

OUTPUT中的

:在第二次过滤后,我们得到该人的姓名!

错误答案:

  

唯一(12)[“w”,“s”,“n”,“d”,“a”,“d”,“o”,“w”,“f”,“d”,“e “,”n“]

     

unique(5)[“w”,“a”,“f”,“n”,“n”]

1 个答案:

答案 0 :(得分:2)

您可以使用array#reduce。在循环内部比较插入的当前值的最后一个值,如果相同则删除最后一个值,否则按下新值。名称为Snowden



let arr = ["w", "w", "s", "n", "d", "a", "a", "d", "o", "w", "f", "f", "d", "e", "n", "n", "n"];

var unique = arr.reduce(function(result, elem) {
  if(result[result.length - 1] == elem)
    result.pop();
  else 
    result.push(elem);
  return result;
}, []);

console.log('unique', unique);