原理
// 对数组['关羽', '张飞', '程咬金', '张飞', '吕布'],进行去重,
// 得到新的数组:['关羽', '张飞', '程咬金', '吕布'];
// 遍历老数组,判断如果新数组中该元素不存在,则添加
var arr = ['关羽', '张飞', '程咬金', '张飞', '吕布'];
var arr1 = ['关羽', '张飞', '程咬金'];
// 第一轮 arr[0] arr1[0]
/* 关羽 关羽
第二轮 arr[1] arr1[0] arr1 = ['关羽','张飞']
张飞 关羽
第三轮 arr[2] arr1[0] arr1 = ['关羽','张飞','程咬金']
程咬金 关羽
arr[2] arr1[1]
程咬金 张飞
*/
// 遍历老数组
for(var i=0;i<arr.length;i++) {
// 先将此元素存到变量
var str = arr[i];
// 假定现在新数组没有这个元素
var isCommon = false;
// 遍历新数组
for(var j=0;j<arr1.length;j++) {
// 新数组与老数组作比较
if(arr[i] == arr1[j]) {
isCommon = true;
}
}
// 根据isCommon 判断新数组是否存在此元素
// 当isCommon是false的时候,代表新数组没有老数组中的这个元素
// 因为if需要为true时才能执行分支语句
// 所以 isCommon这个条件要成立,就是!icCommon = true;
if(!isCommon) {
// 将此元素添加的新数组
arr1[arr1.length] = str;
}
}
// 将新数组赋值给老数组
arr = arr1;
console.log(arr);
利用js内置方法进行数组去重
var arr = ['blue', 'green', 'blue'];
var newArr = new Array();
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) == -1) {
newArr.push(arr[i]);
}
}
console.log(newArr);