码迷,mamicode.com
首页 > 编程语言 > 详细

javascript 数组去重

时间:2017-09-05 22:01:27      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:function   一个   ie8   变量   作用   包括   return   思路   创建   

/*数组去重*/
/*思路:将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]);
}

 

javascript 数组去重

标签:function   一个   ie8   变量   作用   包括   return   思路   创建   

原文地址:http://www.cnblogs.com/html-css-js/p/7481932.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!