法一(数组使用splice方法)
vararr=[1、2、3、4、1、2、3、1、3、7、7、2、1、6、1、2、4、1、2、3]//巡视数组
for(varI=0; iarr.length; I ) {
//定义变量以获取当前元素
var item=arr[i];
巡视//I后的要素
for(varj=I1; jarr.length; j ) {
判断//I之后的要素中是否有与当前要素相等的要素
if(item===arr[j] ) {
//如果有相等的,就删除这个要素
ARR.splice(j,1;
//元素被删除后,数组的长度将发生变化,当前下标的j元素将被后面的元素复盖。 j----,因为为了防止元素丢失,以下循环仍然需要从这个下标开始:
j----;
}
}
}
控制台. log (arr;
法二(将去重结果赋值给新数组)
vararr=[1、2、3、4、1、2、3、1、3、7、7、2、1、6、1、2、4、1、2、3]var arr1=[];
//巡视原始排列
for(varI=0; iarr.length; I ) {
//获取当前元素
var item=arr[i];
//定义布尔变量,并将初始值设置为真
var bool=true;
//巡视新数组
for(varj=0; jarr1.length; j ) {
//如果新数组中已经有此元素,则bool会以假弹出
if(ARR1[j]===item ) {
bool=false;
布雷克;
}
}
//如果最后一个bool保持为真,则新数组中将没有此元素,并执行插入操作
if(bool ) {
ARR1.push(item;
}
}
控制台. log (arr 1;
法三 (原理与法二类似,但使用indexOf方法更简化)
vararr=[ 1,3,1,2,3,5,2,3,4,6 ];var arr1=[];
//巡视原始排列
for(varI=0; iarr.length; I ) {
//在新数组中查找当前元素,如果找不到查询(索引of返回值为-1),则执行插入操作
if(arr1.indexof(arr[I] )===-1 ) {
ARR1.push(ARR[I];
}
}
控制台. log (arr 1; vararr=[ 1,3,1,2,3,5,2,3,4,6 ];
var arr1=[];
//巡视原始排列
for(varI=0; iarr.length; I ) {
//在新数组中查找当前元素,如果找不到查询(索引of返回值为-1),则执行插入操作
if(arr1.indexof(arr[I] )===-1 ) {
ARR1.push(ARR[I];
}
}
控制台. log (arr 1;