zoukankan      html  css  js  c++  java
  • js的一些常用小知识(数组的去重、统计重复次数、循环遍历、 js进制转换方法、js操作JSON)

    /*用递归的方式计算出1-->100的总值*/
                function sum(num) {
                    if(num == 1) {
                        return 1;
                    }
                    return num + sum(num - 1);
                }
                console.log(sum(100))

    统计重复次数的方法:

            function chachong (str){
                       var obj = {};
                       str.sort();
                       for(var i = 0; i < str.length;){
                           var con = 0;
                           for(var j = i; j<str.length; j++){
                               if(str[i] === str[j]){
                                   con++
                               }
                           }
                           obj[str[i]]=con;
                           i += con;
                       }
                       console.log(obj);
                   }
    var a = ['嘿嘿','嘿嘿','哈哈哈','哈哈哈','呼呼呼呼'] chachong(a)

    关于数组去重复的几种方法:

      先创建一个数组吧:

        var arr=['12','32','89','12','12','78','12','32'];
      // 最简单数组去重法 function unique1(array){ var n = []; //一个新的临时数组 for(var i = 0; i < array.length; i++){ //遍历当前数组 if (n.indexOf(array[i]) == -1) n.push(array[i]); } console.log(n)//查看数组 return n; } arr=unique1(arr);
    //es6方法数组去重
        arr=[...new Set(arr)];
        console.log(arr)
    //es6方法数组去重,第二种方法
    function dedupe(array) {
      return Array.from(new Set(array));       //Array.from()能把set结构转换为数组
    }
    console.log(dedupe(arr))
    // 速度最快, 占空间最多(空间换时间)
        function unique2(array){
            var n = {}, r = [], type;
            for (var i = 0; i < array.length; i++) {
                type = typeof array[i];
                if (!n[array[i]]) {
                    n[array[i]] = [type];
                    r.push(array[i]);
                } else if (n[array[i]].indexOf(type) < 0) {
                    n[array[i]].push(type);
                    r.push(array[i]);
                }
            }
            return r;
        }
       console.log(unique2(arr))
    //数组下标判断法
        function unique3(array){
            var n = [array[0]]; //结果数组
            for(var i = 1; i < array.length; i++) { //从第二项开始遍历
                if (array.indexOf(array[i]) == i) 
                    n.push(array[i]);
            }
            return n;
        }
        console.log(unique3(arr))

    关于js的for循环遍历:

                   var str =[{'name':'zs','age':18},{'name':'ls','age':19}               
             console.log(str)
             console.log(
    '-----------------------------') console.log('es5:for循环')
             //len=str.length : 将长度存到缓存中去,这样每次循环时,就不会再去读取数组长度
    for(var i = 0,len=str.length; i<str.length;i++){ console.log(str[i]) } console.log('-----------------------------') console.log('es6: for循环(in)') for(var i in str){ console.log(str[i]) } console.log('------------------------------') console.log('es6:for循环(of)') for(var i of str){ console.log(i) } 
             console.log('---------------------------------')
             console.log('通过$.each进行循环遍历')
             $.each(str,function(index,item){
             console.log(index+':'+JSON.stringify(item))
             })
             console.log('---------------------------------')
             console.log('通过forEach进行循环遍历')
             str.forEach(function(item,index){
             console.log(index+':'+JSON.stringify(item))
             })
             console.log('---------------------------------')
             console.log('通过map进行循环遍历')
             str.map(function(item,index){
             console.log(index+':'+JSON.stringify(item))
             })
     
    
    

     js进制转换方法:

          
          //num:10进制数字, radix:要转换的进制(10进制转成2~36和62进制可以实现)
          function conversion(num, radix) {
    if(radix >= 2 && radix <= 36) { return num.toString(radix); } else if(radix == 62) { var chars = '0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ'.split(''), radix = chars.length, qutient = +num, arr = []; do { mod = qutient % radix; qutient = (qutient - mod) / radix; arr.unshift(chars[mod]); } while (qutient); return arr.join(''); } else { console.log('请输入2~36之间的进制数,或者输入62,转成62进制') return null; } }

     js操作JSON:

    1.将data转成data2

            var data = [{
                    'name': 'zhangsan',
                    age: 18
                },
                {
                    'name': 'lisi',
                    age: 19
                },
                {
                    'name': 'wangwu',
                    age: 20
                }
            ]            
    
    
            var data2 = [
                ['name','age'],
                ['zhangsan',18],
                ['lisi',19],
           ['wangwu',20]
        ]

    具体实现:调用format()方法即可;

        function format(arr) {
                var result = [];
                for(var x in arr) {
                    var item = [];
                    for(var i in arr[x]) {
                        item.push(arr[x][i]);
                    }
                    result.push(item);
                }
                //Object.keys(arr[arr.length-1]):获取到key值
                result.unshift(Object.keys(arr[arr.length - 1]))
                return result;
            }
  • 相关阅读:
    KVM虚拟化网卡管理
    KVM虚拟化存储管理
    OpenStack简介
    KVM虚拟机管理
    Jenkins持续集成
    Python函数
    Python文件处理
    Python语句
    Python数据类型的用法
    微信服务号开发小项目总结
  • 原文地址:https://www.cnblogs.com/a973692898/p/12963488.html
Copyright © 2011-2022 走看看