javascript中的filter()

javascript中的filter(),javascript,filter,Javascript,Filter,我有一个关于Codewar的挑战。下面是我的答案 但是我不明白为什么返回e和返回arr[i-1]都返回相同的结果 var uniqueInOrder=函数(iterable){ 让arry=typeof iterable==“string”?iterable.split(“”):iterable; 返回arry.filter(函数(e,i,arr) { 如果(i==0) { 控制台日志(e); 返回e; } 否则如果(arr[i-1]!==e) { 控制台日志(arr[i-1]); 返回e;

我有一个关于Codewar的挑战。下面是我的答案 但是我不明白为什么返回e和返回arr[i-1]都返回相同的结果

var uniqueInOrder=函数(iterable){
让arry=typeof iterable==“string”?iterable.split(“”):iterable;
返回arry.filter(函数(e,i,arr)
{ 
如果(i==0)
{
控制台日志(e);
返回e;
}
否则如果(arr[i-1]!==e)
{
控制台日志(arr[i-1]);
返回e;
//返回arr[i-1];
}
});
}

唯一顺序(“aaaabbbccdaabbbab”)
filter
创建一个新数组,该数组是根据回调函数返回的truthy值的条目构建的。您的代码总是返回一个真实值,因为如果
i
0
,则返回
e
(数组中的一个字符,所有字符都是真实的),如果
i
不是
0
,则使用注释掉的
返回arr[i-1]
,您还将从数组中返回一个字符


因此,您根本不进行过滤,只是复制阵列。

谢谢,先生。我的问题已经解决了。