首页 > 代码库 > 一道javascript数组操作题

一道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, 5var 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元", 5var 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, 19var _index = [];for(var n=0; n<arr.length; n++){    if(Number.isNaN(arr[n])){        _index.push(n);    }}console.log(_index);

 

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

 

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

一道javascript数组操作题