由于我在@Rocket答案的注释中继续进行了讨论,因此我不妨提供一个不使用任何库的示例。这需要两个新的原型函数,
contains并且
unique
Array.prototype.contains = function(v) { for (var i = 0; i < this.length; i++) { if (this[i] === v) return true; } return false;};Array.prototype.unique = function() { var arr = []; for (var i = 0; i < this.length; i++) { if (!arr.contains(this[i])) { arr.push(this[i]); } } return arr;}var duplicates = [1, 3, 4, 2, 1, 2, 3, 8];var uniques = duplicates.unique(); // result = [1,3,4,2,8]console.log(uniques);为了提高可靠性,可以
contains用MDN的
indexOf垫片代替,并检查每个元素的值
indexOf是否等于-1:文档



