demo27-数组去重
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> <script type="text/javascript"> var arr1 = [1, 2, 1, 2, 2, 3, 2, 1, 3, 4, 4, 5, 6, 9, 9] //声明空变量,装不重复的数据 var arr2 = [] //迭代需要去掉的重复数据 for(var i = 0; i < arr1.length; i++) { //原来数据 console.log("原来的数据是:" + arr1) //寻找当前索引出现的第一个位置 //console.log(arr1.indexOf(arr1[i]) == i) //判断数组里面的值和索引是否相等,為true的就取出來 //行吧,就是 arr1.indexOf(arr1[i]) == i 这句了.只要是数组里面的元素等于它对应的索引. //不对,实际上是另外一个数组[0,1,2,3,4...,arr.length-1] 和 arr里面的元素进行比较.只要相等,就取出来 //arr1.indexOf(arr1[i]) 这个意思是返回arr1数组中每一个元素在数组中第一次出现的索引值, //这样就保证了每个元素只会出现一次,然后拿这些索引去和i这个数组[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14], //进行比较 [0(1),1(2),5(3),9(4),11(5),12(6),13(9)] //简直是天才的想法.厉害厉害! //[0(1),1(2),5(3),9(4),11(5),12(6),13(9)] //[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14] //console.log(arr1.indexOf(arr1[i])) if(arr1.indexOf(arr1[i]) == i) { arr2.push(arr1[i]) } } console.log("去重后的数组:" + arr2) </script> </html> <!-- 数组去重: 等下回来继续看看.可以了.就是多写了一个() 调试: -->