// 遍历数组,判断当前元素是否存在于 final 数组,没有则保留 functionunique1(arr) { var final = []; for (var i = 0; i < arr.length; i++) { if (final.indexOf(arr[i]) == -1) { final.push(arr[i]); } } return final; }
1 2 3 4 5 6 7 8 9 10
// 遍历当前数组元素,如果当前元素第一次出现的位置 == 当前索引,则保留 functionunique2(arr) { var final = [];
for(var i = 0; i < arr.length; i++) { if (arr.indexOf(arr[i]) == i) final.push(arr[i]); }
return final; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// 先排序,将原数组的第一元素放入 final 数组中作为起始的比较 (以防下面的循环判断第一次出现错误影响执行)。
// 以 final 数组当前的最后一项作为比较基础,若循环到的与 final 最后一项不等则保留。 functionunique3(arr) { arr.sort(); var final = [arr[0]];
for(var i = 1; i < arr.length; i++) { if (arr[i] !== final[final.length - 1]) { final.push(arr[i]); } }