我尝试删除数组中的邻域值。项目从一个数组移动到另一个数组,之后如果两个相邻元素相似,则必须将它们删除。等链条。 经验不足以理解我做错了什么。
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”]
答案 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);