我试图从排序列表中删除重复项。
我写了这个脚本。
for(var i = 0; i < duplicateAuthors.length - 1; i++){
if(duplicateAuthors[i] == duplicateAuthors[i + 1]) { continue; }
else{
uniqAuthors.push(duplicateAuthors[i]);
}
}
除非它不捕获列表中的唯一值,否则它有效。我做错了什么?
答案 0 :(得分:4)
var uniqAuthors = [];
for(var i = 0; i < duplicateAuthors.length; i++){
if(uniqAuthors.indexOf(duplicateAuthors[i]) == -1) {
uniqAuthors.push(duplicateAuthors[i]);
}
}
上面的代码检查数组中是否存在对象,如果没有将其添加到数组中。因此,最后我们将得到一系列独特的值。
答案 1 :(得分:1)
由于对象键必须是唯一的,我意识到您还可以执行以下操作来隔离唯一值。
var uniqs = {};
for(var i = 0; i < duplicateAuthors.length ; i++){
uniqs[duplicateAuthors[i]] = null;
}
var uniqAuthors = Object.keys(uniqs);
答案 2 :(得分:0)
这将利用它已经排序的事实。
var previous;
var current;
for(var i = 0; i < duplicateAuthors.length; i++){
current = duplicateAuthors[i];
if (current && current != previous) {
uniqAuthors.push(current);
previous = current;
}
}