/*数组去重*/ /*思路:将arr数组中的每一项相互进行比较 方法:创建一个新的数组,存放arr[0] 将arr中每一项与res[j]比较,若有一个相等,则结束 遍历比较,通过break跳出,若每一项都不相等,则push到res 通过创建m变量记录是否全部不相等或者存在一个相等,相等则改变m的值,只有当m的值为1时表示 全部不相等*/ /* 问题:注意m的作用域 条件语句的条件 */ function unique(arr) { var res = []; res.push(arr[0]); for (var i = arr.length - 1; i >= 0; i--) { var m =1; for (var j= 0; j< res.length; j++) { if (arr[i]== res[j]) { m=0; break; } } if(m!=0){ res.push(arr[i]); } } return res; } var arr = [12, 45,56,4,2,3,4,5,3,1,2]; var ff = []; ff = unique(arr); for (var i = 0; i < ff.length; i++) { console.log(ff[i]); }
/*数组去重*/ /*思路:首先将数组排序,将排序后的第一个值赋值给res,遍历arr,并与res的最后一个 值比较,不等则push,否则跳过*/ /*问题,注意比较的对象,下标 表示*/ function unique02(arr) { arr.sort(); var res = []; res.push(arr[0]); for (var i = 0 ;i<arr.length;i++) { if (arr[i]!=res[res.length-1]) { res.push(arr[i]); } } return res; } var arr = [12, 45,56,4,2,3,4,5,3,1,2]; var ff = []; ff = unique02(arr); for (var i = 0; i < ff.length; i++) { console.log(ff[i]); }
/*数组去重*/ /*思路:调用indexOf方法不存在即返回-1的特性*/ /*问题:注意indexOf方法并不是所有的浏览器都支持,IE8包括IE8都不支持*/ function unique03(arr) { var res= []; for (var i = 0 ;i<arr.length;i++) { if (res.indexOf(arr[i])==-1) { res.push(arr[i]); } } return res; } var arr = [12, 45,56,4,2,3,4,5,3,1,2]; var ff = []; ff = unique03(arr); for (var i = 0; i < ff.length; i++) { console.log(ff[i]); }