zoukankan      html  css  js  c++  java
  • 常用数组方法

    计算一串字符串每个字母出现的次数

    var arrString = 'abcdaabddcca';
    arrString.split('').reduce(function (prev, curr) {
        prev[curr] ? prev[curr]++ : prev[curr] = 1;
        return prev;
    }, []);

    sort排序(json 数组 根据某一属性排序, 倒序

    // const arrB = arrA.sort(sortByKey);
    function sortByKey (a,b) { 
      return b.time - a.time; 
    }

    深拷贝

    var deepClone = function (obj) {
        var _tmp,result;
        _tmp = JSON.stringify(obj);
        result = JSON.parse(_tmp);
        return result;
    }
    
    b = deepClone(a);

    数组如何随机排序

    function randomSort(a){
        var arr = a,
            random = [],
            len = arr.length;
        for (var i = 0; i < len; i++) {
          var index = Math.floor(Math.random()*(len - i));
          random.push(a[index]);
          arr.splice(index,1);
        }
        return random;
      }
    
      var a = [1,2,3,4,5,6,7,8,9,10];
      console.log(randomSort(a));

    数组去重

    function uniq(array){
      var temp = []; //一个新的临时数组
      for(var i = 0; i < array.length; i++){
        if(temp.indexOf(array[i]) == -1){
          temp.push(array[i]);
        }
      }
      return temp;
    }
    var aa = [1,2,2,4,9,6,7,5,2,3,5,6,5];
    console.log(uniq(aa));
    ES6 数组去重的一种写法
    function dedupe(array) {
      return Array.from(new Set(array));
    }
    
    dedupe([1, 1, 2, 3])

    普通1维数组并集

    function aAddB (a, b) {
      return [...a, ...b];
    }
    aAddB([1,2,3],[2,3,4]); 
    普通1维数组交集
    function aAndB (a, b) {
      let intersectionSet = a.filter(x => new Set(b).has(x));
      return intersectionSet;
    }
    aAndB([1,2,3,4],[2,3,4,5]);
    普通1维数组a-b差集
    function aNotB (a, b) {
      let differenceABSet = a.filter(x => !new Set(b).has(x));
      return differenceABSet;
    }
    aNotB([1,2,3,4],[2,3,4,5]);
    普通1维数组并集(ES6去重)
    function aAddBRemoveDuplicates (a, b) {
      return Array.from(new Set([...a, ...b]));
    }
    aAddBRemoveDuplicates([1,2,3,4], [2,3,4,5]); //[1, 2, 3, 4, 5]

     第二种

      function distinct(a, b) {
        let arr = a.concat(b)
        let result = []
        let obj = {}
        for (let i of arr) {
          if (!obj[i]) {
            result.push(i)
            obj[i] = 1
          }
        }
        return result
      }

    JSON数组(一维)根据主key(id等)去重

    function unique (arr, key) {
      var r = [];
      for (var i = 0, l = arr.length; i < l; i++) {
        for (var j = i + 1; j < l; j++) {
          if (key) {
            if (arr[i][key] === arr[j][key]) {
              j = ++i;
            }
          }  
          else {
            if (arr[i] === arr[j]) {
              j = ++i;
            }
        }
      }
      r.push(arr[i]);
    }
    return r;
    };
    
    let paylist = [
      {chnlNo: "现金", amount: 300, type: 2},
      {chnlNo: "支付宝", amount: "100", type: 2},
      {chnlNo: "银行卡", amount: "400", type: 2},
      {chnlNo: "现金", amount: 200, type: 2}
    ];
    unique(paylist,'chnlNo');
  • 相关阅读:
    Maven 环境的配置
    zTree的简单例子
    plsql免安装客户端的配置
    HDU 1232 畅通工程
    HDU 5698 瞬间移动
    Codeforces 1015E1 Stars Drawing (Easy Edition)
    Codeforces 784B Santa Claus and Keyboard Check
    Codeforces 500C New Year Book Reading
    NSarray 赋值 拷贝 等问题记录
    UINavigationController 操作记录
  • 原文地址:https://www.cnblogs.com/tanweiwei/p/10553215.html
Copyright © 2011-2022 走看看