zoukankan      html  css  js  c++  java
  • js 对 只包含简单类型数据的对象 为元素 组成的数组 进行去重

     1  /**
     2          * 对于由简单类型数据组成的对象为元素组成的数组进行去重操作
     3          * @params {Array} 需要去重的对象数组
     4          * @returns {Array} 去重后的对象数组
     5          */
     6         function distinct(sourceArray) {
     7 
     8             var resultArray = [];
     9             var i, j, currentSource, currentResult;
    10 
    11             for (i = 0; i < sourceArray.length; i++) {
    12 
    13                 currentSource = sourceArray[i];
    14 
    15                 if (resultArray.length === 0) {
    16                     resultArray.push(currentSource);
    17                     continue;
    18                 }
    19 
    20                 for (j = 0; j < resultArray.length; j++) {
    21 
    22                     currentResult = resultArray[j];
    23 
    24                     if (!compare(currentResult, currentSource)) {
    25                         resultArray.push(currentSource);
    26                     }
    27 
    28                 }
    29 
    30             }
    31 
    32             return resultArray;
    33 
    34             function compare(obj1, obj2) {
    35                 for (var prop in obj1) {
    36 
    37                     if (!obj1.hasOwnProperty(prop)) {
    38                         continue;
    39                     }
    40 
    41                     if (obj1[prop] !== obj2[prop]) {
    42                         return false;
    43                     }
    44 
    45                 }
    46 
    47                 return true;
    48             }
    49 
    50         }
    /**
    * 对于由简单类型数据组成的对象为元素组成的数组进行去重操作
    * @params {Array} 需要去重的对象数组
    * @returns {Array} 去重后的对象数组
    */
    function distinct(sourceArray) {

    var resultArray = [];
    var i, j, currentSource, currentResult;

    for (i = 0; i < sourceArray.length; i++) {

    currentSource = sourceArray[i];

    if (resultArray.length === 0) {
    resultArray.push(currentSource);
    continue;
    }

    for (j = 0; j < resultArray.length; j++) {

    currentResult = resultArray[j];

    if (!compare(currentResult, currentSource)) {
    resultArray.push(currentSource);
    }

    }

    }

    return resultArray;

    function compare(obj1, obj2) {
    for (var prop in obj1) {

    if (!obj1.hasOwnProperty(prop)) {
    continue;
    }

    if (obj1[prop] !== obj2[prop]) {
    return false;
    }

    }

    return true;
    }

    }
  • 相关阅读:
    [BZOJ1222/Luogu2224][HNOI2001]产品加工
    [BZOJ1079/Luogu2476][SCOI2008]着色方案
    [BZOJ3098]Hash Killer II
    [BZOJ1818][CQOI2010]内部白点
    [BZOJ1497/Luogu4174][NOI2006]最大获利
    [BZOJ2330/Luogu3275][SCOI2011]糖果
    [BZOJ1208/Luogu2286][HNOI2004]宠物收养场
    [BZOJ1054/Luogu4289][HAOI2008]移动玩具
    Com组件介绍
    webBrowse官方说明
  • 原文地址:https://www.cnblogs.com/JosephBee/p/11322510.html
Copyright © 2011-2022 走看看