码迷,mamicode.com
首页 > 编程语言 > 详细

一道javascript数组操作题

时间:2016-11-11 00:48:56      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:dex   round   nbsp   typeof   console   amp   int   []   资料   

题目如下:

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

 

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

 

有感:“温故而知新”,已记之~

一道javascript数组操作题

标签:dex   round   nbsp   typeof   console   amp   int   []   资料   

原文地址:http://www.cnblogs.com/zhangans/p/6052562.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!