• js算法题


    //较Low,看到的大神 帮补充

    1.给定一个数组:,定义一个函数获取数组中所有的奇数,返回一个新数组;
    var arr1=[1,3,4,5,6,7,8,3,4,2,3,6];
        function odd(arr){
            var newArr=[]
            for(var i =0; i<arr.length;i++){
                if(arr[i]%2!=0){
                    newArr.push(arr[i])
                }
            }
            return newArr;
        }
        console.log(odd(arr1));

    //2.给定一个数组:定义一个函数用于获取数组中重复出现次数最多的数; 有一个bug当两个出现次数一样多悲催了      

    有一个bug当两个出现次数一样多悲催了     

    var arr2=[1,3,4,5,6,7,8,3,4,2,3,6];

        function maxLen(arr2){
            var maxLen =0,maxKey; //maxKey最多的哪项 ,最多次数初始值0(保证全遍历);
            for(var j = 0;j<arr2.length;j++){
                var len=0;  //计数  每次循环初始化len值为0;
                for(var k=0;k<arr2.length;k++){
                    if(arr2[k]===arr2[j]){
                        len++; //每项出现多少次
                    }
                }
                if(maxLen<len){
                    maxLen=len;
                    maxKey=arr2[j];
                };
            }
            console.log("最多次数的是:"+maxLen+" ,出现了"+maxLen+"次")
        }
        
        maxLen(arr2);

    3.给定一个数组:按照字段age由大到小进行排序;

    var arr3 = [{age:2,id:0},{age:12,id:9},{age:14,id:8},{age:22,id:6}];

    objectOrder(arr3,"age");  //调用函数

    function objectOrder(arr,pro){  //对象中 按pro大小排序
        for(var i = 0;i<arr.length;i++){
            for(var j =i+1;j<arr.length;j++){
                var temp;
                if(typeof(arr[i][pro]) == "undefined"){
                    alert("格式不符合要求");
                    return;
                }
                if(arr[i][pro] < arr3[j][pro]){  //把小的放后面
                    temp = arr[j];
                    arr[j] = arr[i];
                    arr[i] = temp;
                }
            }
        }
        console.log(arr); //输出排过序的arr
    }

    4.给你一串数字,转换成货币格式,小数点后保留两位,货币前缀由入参决定

    问题:变过之后钱缩水了  ······"

    "$" + num +".00" 这样才是对等的

    var num = "1234567"; //012,345.670
    var arr = num.split(""); //Array [ "1", "2", "3", "4", "5", "6", "7" ]
    function $currency(num,$){
        $ = $ || "¥";
        var num = num+"";
        var arr = num.split("");
        var len = arr.length;
        switch(len%3){  //加工数据格式
            case 0 :      //001.234.56
            arr.unshift("0","0");
            break;
            case 1 :     //012.345.67
            arr.unshift("0");
            break;
            default :    //两个余数
            arr
            break;
        }
        console.log(arr);

        var l = Math.floor(arr.length/3);
        var s="";
        for(var k=0;k<l;k++){
            if(k<l-1){
                s+=parseInt(arr.splice(0,3).join(""))+","

            }else{
                s+=parseInt(arr.splice(0,3).join("")) + "."
            }
        }

        console.log($+s+arr.join(""));
    }
    $currency(num,"¥");   //¥12,345.67

  • 相关阅读:
    Linux-grep 命令和find 命令 (6)
    第1阶段——u-boot分析之make 100ask24x0_config指令(1)
    shell变量$(CURDIR),$0,$1,$2,$#含义解释
    ln命令详解
    快速解决设置Android 23.0以上版本对SD卡的读写权限无效的问题
    java.io.IOException: Cleartext HTTP traffic to xxx.xxx.xxx.xxx not permitted
    AndroidStudio 3.0中之后无法打开DDMS [Android Device Monitor] 问题
    解决android sdk docs帮助文档打开慢的问题
    Android Intent的使用
    约束布局ConstraintLayout详解
  • 原文地址:https://www.cnblogs.com/baota/p/6657970.html
Copyright © 2020-2023  润新知