题目如下:

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数组操作题的更多相关文章

  1. RX学习笔记:JavaScript数组操作

    RX学习笔记:JavaScript数组操作 2016-07-03 增删元素 unshift() 在数组开关添加元素 array.unshift("value"); array.un ...

  2. javascript数组操作(创建、元素删除、数组的拷贝)

    这篇文章主要介绍了javascript数组操作,包括创建.元素的访问.元素删除.数组的拷贝等操作,还有其它示例,需要的朋友可以参考下 1.数组的创建 复制代码 代码如下: var arrayObj = ...

  3. JavaScript 数组操作函数--转载+格式整理

    JavaScript 数组操作函数(部分)--转载+格式整理 今天看了一篇文章,主要讲的对常用的Js操作函数:push,pop,join,shift,unshift,slice,splice,conc ...

  4. Javascript数组操作

    使用JS也算有段时日,然对于数组的使用,总局限于很初级水平,且每每使用总要查下API,或者写个小Demo测试下才算放心,一来二去,浪费不少时间:思虑下,堪能如此继续之?当狠心深学下方是正道. 原文链接 ...

  5. Javascript数组操作(转)

    1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...

  6. JavaScript 数组操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. javascript 数组操作 转

    javascript之数组操作 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一 ...

  8. javascript数组操作汇总

    javascript之数组操作 - 不悔的青春 - 博客园 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array( ...

  9. javaScript数组操作整理

    一.js数组 1.创建数组: var arr = new Array();//创建没有元素空数组 var arr1 = new Array("value1","valeu ...

随机推荐

  1. ViewPager 重新加载 及 PagerAdapter 使用

    PagerAdapter 简介 PagerAdapter是android.support.v4包中的类,它的子类有FragmentPagerAdapter, FragmentStatePagerAda ...

  2. JAVA编程思想(第四版)学习笔记----11.5 List,11.6迭代器

    Collection类的层次结构图(来源与网络)如下所示: 接口:Iterator<T> public interface Iterable<T> Iterable<T& ...

  3. 从配置读取一段时间(TimeSpan)

    C#的TimeSpan表示一段时间,DateTime表示一个时间点.TimeSpan可正可负,可与DateTime相加减,很方便,我喜欢. 代码中我们经常要表示一段时间,用一个统一的单位(时 或者 分 ...

  4. MySQL Performance-Schema(二) 理论篇

    MySQL Performance-Schema中总共包含52个表,主要分为几类:Setup表,Instance表,Wait Event表,Stage Event表Statement Event表,C ...

  5. knockoutjs如何动态加载外部的file作为component中的template数据源

    玩过knockoutjs的都知道,有一个强大的功能叫做component,而这个component有个牛逼的地方就是拥有自己的viewmodel和template, 比如下面这样: ko.compon ...

  6. Java 中一个过时的类,能够很好的统计单个字符串的次数

    //StringTokenizer st1=new StringTokenizer("rirtirtjdlkfjlksadfoiyetryetretrejtlkjdsflkiuetuiojr ...

  7. LAMP环境配置 linux+apache+mysql+php

    虚拟机安装Linux系统: 新建虚拟机过程中选择Linux,下面选择centos或者是Ubuntu Linux切换图像命令:注意只有装了图像界面才可以切换 查看安装环境的版本: rpm -qa 查看安 ...

  8. swift 简介和常量与变量 --- swift 入门

    一.思维导图 二. 代码 //创建UIView 和按钮 let views = UIView(frame: CGRect(x:20, y: 20, width: 100, height: 100))/ ...

  9. POJ 2125 Destroying the Graph 二分图最小点权覆盖

    Destroying The Graph Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8198   Accepted: 2 ...

  10. 台式机装原版Win2008R2

    台式机装原版Win2008R2 坑了老半天,总结出几点 1,系统os下载: http://msdn.itellyou.cn/ 注:其他地方下载的,装后发现不是起不来就是驱动装不了. 2,u盘里放个压缩 ...