数据类型与转换:找到合适的值

来源:互联网 发布:淘宝物流投诉怎么撤销 编辑:程序博客网 时间:2024/04/29 05:39
需求: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 ];var len = arr.length;var res = [];/*    1、找到arr里所有的数字:-98765, 34, -2, 0, 5    2、找到可以转成数字的:'100px', -98765, 34, -2, 0, '300', '23.45元',  5     3、把转成数字以后,最大值判断出来:300    4、把 NaN 所在的位置找出来:1 14 17  19*/
// 1、找到arr里所有的数字:-98765, 34, -2, 0for ( var i = 0; i < len; i++ ) {    if (typeof arr[i] === 'number' && arr[i] === arr[i]) {        console.log(arr[i]);    }}
// 2、找到可以转成数字的:'100px', -98765, 34, -2, 0, '300', '23.45元',  5for ( var i = 0; i < len; i++ ) {    var val = parseFloat(arr[i]);    if (typeof val === 'number' && val === val) {        console.log(arr[i]);    }}
// 3、把转成数字以后,最大值判断出来:300var max = 0;for ( var i = 0; i < len; i++ ) {    var val = parseFloat(arr[i]);    if (typeof val === 'number' && val === val) {        if (max < val) max = val;    }}console.log(max);
//4、把 NaN 所在的位置找出来:1 14 17  19for ( var i = 0; i < len; i++ ) {    var value = arr[i];    if (value !== value){        console.log(i);    }}
0 0