JS基础——JS找到合适的值

HTML部分:

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

<br>
---------------------------------------------------------------------------------------
<br>
	1、找到arr里所有的数字:-98765, 34, -2, 0, 5     <br>
	2、找到可以转成数字的:'100px', -98765, 34, -2, 0, '300', '23.45元',  5  <br>
	3、把转成数字以后,最大值判断出来:300     <br>
	4、把 NaN 所在的位置找出来:1 14 17  19 <br>
<br>
--------------------------------------------------------------------------------------
<br>
<input type="button" value="找出所有数字"/>
<input type="button" value="找出所有可以转换成数字的"/>
<input type="button" value="把转换成数字的最大值找粗来" />
<input type="button" value="把NaN所在位置弹出来" />
<div id="div1"></div>

JS部分:

window.onload = function(){
	var aBtn = document.getElementsByTagName('input');
	var oDiv = document.getElementById('div1');
	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 str = '';
	var arrMax = [];
	
	//找出所有的数字
	aBtn[0].onclick = function(){
		for(var i=0; i<arr.length; i++){
			//首先  判断数字类型 排除布尔类型  然后!isNaN把过滤后的数字都搞出来
			if(typeof(arr[i]) === 'number' && !isNaN(arr[i])){
				str += arr[i] + ',';
			}	
		}
		oDiv.innerHTML = str;
		//防止点击当前按钮,重复生成
		str = '';	
	};
	
	//找出可以转成数字的
	aBtn[1].onclick = function(){
		for(var i=0; i<arr.length; i++){
			//parseFloat会干掉0  所以要加上
			if(parseFloat(arr[i]) || parseFloat(arr[i]) === 0){
				str += arr[i] + ',';	
			}	
		}
		oDiv.innerHTML = str;
		str = '';	
	};
	
	//找出转成数字的,并从中找出最大值
	aBtn[2].onclick = function(){
		for(var i=0; i<arr.length; i++){
			//parseFloat会干掉0  所以要加上
			if(parseFloat(arr[i]) || parseFloat(arr[i]) === 0){
				arrMax.push(arr[i]);
			}	
		}
		//把arrMax的第一个值赋给iMax变量,以便后面跟arrMax数组比较,匹配出最大值
		var iMax = arrMax[0];
		for(var i=0; i<arrMax.length; i++){
			//通过iMax一一比较arrMax数组中的数字,然后把比较大的值赋给iMax,从而找出最大值
			if(iMax<arrMax[i]){
				iMax = arrMax[i];	
			}	
		}
		oDiv.innerHTML = iMax;
		iMax = '';	
	};
	
	//找出数组arr中NaN所在的位置
	aBtn[3].onclick = function(){
		for(var i=0; i<arr.length; i++){
			//NaN是数字类型  不是数字; 即把不是数字的数字类型筛选出来(字符串和数字的表达式等)
			if(typeof(arr[i]) === 'number' && isNaN(arr[i])){
				str += i +',';	
			}	
		}
		oDiv.innerHTML = str;
		str = '';	
	};
	
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值