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

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

  • 相关阅读:
    Q群
    shell脚本写host类型executable
    Oracle EBS 基于Host(主机文件)并发程序的开发
    ORALCE存储之ROWID
    HOW TO LINK THE TRANSACTION_SOURCE_ID TO TRANSACTION_SOURCE_TYPE_ID
    查找Form文件
    ORACLE column_type_id与实际type的对应关系
    OAF jar包引用产生错误
    计算Trial Balance的新方法(转)
    如何访问到XtreemHost上的站点?
  • 原文地址:https://www.cnblogs.com/zhangans/p/6052562.html
Copyright © 2011-2022 走看看