//方法1 在待处理的数组里进行循环 并申明一个变量是否唯一位true
//再在我们需要得到的数组里进行循环比较如果相等就变成false 如果是true push
var larr = [];
var arr = [1, 2, 3, 4, 5, 3, 3, 2, 1, 1, 1234234, 12, -1, 5];
for (var i = 0; i < arr.length; i++) {
var t = true;
for (var w = 0; w < larr.length; w++) {
if (larr[w] == arr[i]) {
t = false;
}
}
t && larr.push(arr[i]);
}
console.log(larr);
//方法2 这个方法不用申明新的变量 用前一个的值与后面所有比较相等就删掉 简单粗暴
var arr = [2, 3, 3, 2, 5, 5, 6, 5];
for (var i = 0; i < arr.length - 1; i++) {
for (var w = i + 1; w < arr.length; w++) {
if (arr[w] == arr[i]) {
arr.splice(w);
++w;
}
}
}
console.log(arr);
//方法3 这个更优雅 写在原型链上 项目中可以写成一个单独的js然后引用 以便于直接调用
Array.prototype.unique3 = function () {
var res = [];
var json = {};
for (var i = 0; i < this.length; i++) {
if (!json[this[i]]) {
res.push(this[i]);
json[this[i]] = 1;
}
}
return res;
}
var arr = [112, 112, 34, '你好', 112, 112, 34, '你好', 'str', 'str1'];
alert(arr.unique3());
网友评论