<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>找到合适的值</title>
<script>
window.onload = function (){
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, 0, '300', '23.45元', 5
3、把转成数字以后,最大值判断出来:300
4、把 NaN 所在的位置找出来:1 14 17 19
*/
var num = '';
for (var i = 0; i < arr.length; i++) {
if(parseInt(arr[i])==arr[i]){
document.write(arr[i]+' ');
}
}
</script>
</head>
<body>
</body>
</html>
typeof判断类型,然后parseFloat转换,判断结构是否NaN
<script>
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 arrNum = [], arrCanParse = [],arrCanParseNum=[], max, arrNaNIndex=[],r;
for (var i = 0; i < arr.length; i++) {
if (typeof arr[i] == 'number' && !isNaN(arr[i])) arrNum.push(arr[i]);
else {
r = parseFloat(arr[i]);
if (isNaN(r)) arrNaNIndex.push(i);
else { arrCanParse.push(arr[i]);arrCanParseNum.push(r)}
}
}
console.log(arrNum)
console.log(arrCanParse)
console.log(arrNum.concat(arrCanParseNum).sort(function (a, b) { return b - a })[0]);
console.log(arrNaNIndex)
</script>
很简单,比如:
首先定义一个数组 var arr=[2,4,5,3,5,3,0];//这里以整形数组为例
确定数组的长度arr.length;
利用循环语句遍历数组
var arr=[2,4,5,3,5,3,0];
var arrvalue;//用于存放取出的数组的值
for(var i=0;i<arr.length;i++){
arrvalue=arr[i];//数组的索引是从0开始的
console.log(arrvalue);//把取出的值打印在控制台上
}
定义四个var 然后for循环array,结果复制给定义的var