zoukankan      html  css  js  c++  java
  • 一道javascript数组操作题

    题目如下:

    var arr = ['100px','abc'-6,[],-98765,34,-2,0,'300',,function(){alert(1);}, null, document, [], true, '200px'-30, '23.45元', 5, Number('abc'), function(){alert(3);}, 'xyz'-90 ];
    
    //1、找到arr里所有的数字:-98765, 34, -2, 0, 5
    //2、找到可以转换成数字的:"100px", -98765, 34, -2, "300", "23.45元", 5
    //3、把转换成数字以后,最大值判断出来:300
    //4、把NaN所在的位置找出来:1, 14, 17, 19

    1、找到arr里所有的数字:-98765, 34, -2, 0, 5

    //1、找到arr里所有的数字:-98765, 34, -2, 0, 5
    var num1 =[];
    for(var i = 0 ;i<arr.length; i++){
        //筛选出数字和能转换成数字的字符串
        var re = /^(-?)d+$/;  
        if(re.test(arr[i]) && typeof(arr[i]) != 'string'){
            num1.push(arr[i]);
        }
        
    }
    console.log(num1);

    2、找到可以转换成数字的:"100px", -98765, 34, -2, "300", "23.45元", 5

    //2、找到可以转换成数字的:"100px", -98765, 34, -2, "300", "23.45元", 5
    var num2=[];
    for(var j =0; j<arr.length; j++){
        //parseInt解析一个字符串,并返回一个整数
        if(parseInt(arr[j])){
            num2.push(arr[j]);
        }
    }
    console.log(num2);

    3、把转换成数字以后,最大值判断出来:300

    //3、把转换成数字以后,最大值判断出来:300
    
    //假设最大值为数组的第一个元素,循环比对
    var _max = num2[0];
    for(var m=0; m<num2.length; m++){
        if(_max < num2[m] ){
            _max = num2[m];
        }
        
    }
    console.log(_max);

    4、把NaN所在的位置找出来:1, 14, 17, 19

    //4、把NaN所在的位置找出来:1, 14, 17, 19
    var _index = [];
    for(var n=0; n<arr.length; n++){
        if(Number.isNaN(arr[n])){
            _index.push(n);
        }
    }
    console.log(_index);

    查了资料才完成的,不用忘得好快啊

  • 相关阅读:
    [Real World Haskell翻译]第24章 并发和多核编程 第一部分并发编程
    [Real World Haskell翻译]第22章 扩展示例:Web客户端编程
    [Real World Haskell翻译]第27章 网络通信和系统日志 Sockets and Syslog
    druid 解密
    git clone 所有远程分支到本地
    十、Delphi 把Json转成Delphi实体类
    XML External Entity attack/XXE攻击
    大家好!
    XXE攻防——XML外部实体注入
    ubuntu安装Go环境
  • 原文地址:https://www.cnblogs.com/zhangans/p/6052562.html
Copyright © 2011-2022 走看看