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');
  • 相关阅读:
    新闻发布项目——Servlet类(doDelNewsServlet )
    新闻发布项目——Servlet类(doDelNewsServlet )
    新闻发布项目——Servlet类(doDelCategoryServlet )
    TCP Operational Overview and the TCP Finite State Machine (FSM) http://tcpipguide.com/free/t_TCPOperationalOverviewandtheTCPFiniteStateMachineF.htm
    tcp state
    定时任务 执行结果
    长连接 短连接 RST报文
    Common non-standard response fields
    借助ltp 逐步程序化实现规则库 文本生成引擎基于规则库和业务词库 去生成文本
    人工智能 大数据 程序 技术 代码 是工具 不是产品 产品驱动
  • 原文地址:https://www.cnblogs.com/tanweiwei/p/10553215.html
Copyright © 2011-2022 走看看