1.这个方法比较简单,但是不足之处是,使用sort()方法之后,把原数组给改变了
var data = ['blue', 'red', 'green', 'blue'];
function UniqueData(data) {
data = data.sort();
for (var i = 0; i < data.length; i++) {
if (data[i] === data[i + 1]) {
data.splice(i, 1);
}
}
return data;
}
UniqueData(data);
2.遍历数组中的元素,比较其中任意两个是否相等,如果想等,把后面一个从数组中删除,但是如果数组中元素很多,这个方法就显得没那么好了。
var data = ['blue', 'red', 'green', 'blue'];
function UniqueData(data) {
for (var i = 0; i < data.length; i++) {
for (j = i + 1; j < data.length; j++) {
if (data[i] === data[j]) {
data.splice(j, 1);
}
}
}
return data;
}
UniqueData(data);
3.创建一个新数组,把原数组中的元素逐个添加到新数组中(判断新数组中是否已经包含原数组中的元素,如果没有,把原数组中的元素添加到新数组,如果已经存在,则不添加),因此就可以避免重复元素的产生了。
var data = ['blue', 'red', 'green', 'blue'];
function newData(data) {
var nData = new Array();
for (var i = 0; i < data.length; i++) {
if (nData.indexOf(data[i]) == -1) {
nData.push(data[i]);
}
}
return nData;
}
newData(data);