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);

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

  • 相关阅读:
    python高级特性和高阶函数
    代理模式及案例
    我的报错错误记录
    摘抄-编码规范
    测试java的Lambda语法
    测试IDEA将新建项目提交到github上
    js处理科学计数法
    测试java操作运算符
    java根据模板生成,导出word和pdf(aspose.words实现word转换pdf)
    sqlserver日期函数
  • 原文地址:https://www.cnblogs.com/zhangans/p/6052562.html
Copyright © 2011-2022 走看看