博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
遍历javascript中的数组,最大最小值获取
阅读量:5836 次
发布时间:2019-06-18

本文共 1228 字,大约阅读时间需要 4 分钟。

hot3.png

1. for in是用来迭代对象的属性的,用来遍历数组可能会出现各种问题,所以还是用传统的for i=0; i<length;i++。

我在代码中看到的 

 

 

 

 

 

var modules = ['aaa','bbb'];

for(var i in modules){

  if (modules.hasOwnProperty(i)){

    // do something here

  }

}

如果这样去遍历数组,则i的值是数组的索引0, 1, 2 ... 但是如果有人像下面这样修改了Array的原型,则for in就会挂掉。: 

 

 

 

 

 

Array.prototype.foo = "foo!";

var array = ['a', 'b', 'c'];

 

for (var i in array) {

  alert(array[i]);

}

 简单解释欢迎提建议:for i=0; i<length;i++ 循环  取到数组长度,到长度-1就不继续往下循环控制住,而for in 是在数组中找不到,会继续往原型链中找,知道原型链中没有值。

2.获取数组中最大值最小值:

var numReg = /^-?[0-9]+.?[0-9]*$/

Array.prototype.min = function() {

    return this.reduce(function(preValue, curValue,index,array) {

             if ( numReg.test(preValue) && numReg.test(curValue) ) {

            return preValue > curValue ? curValue : preValue;

             } else if ( numReg.test(preValue) ) {

                       return preValue;

             } else if ( numReg.test(curValue) ) {

                       return curValue;

             } else {

                       return 0;

             }

    })

}

Array.prototype.max = function() {

    return this.reduce(function(preValue, curValue,index,array) {

             if ( numReg.test(preValue) && numReg.test(curValue) ) {

            return preValue < curValue ? curValue : preValue;

             } else if ( numReg.test(preValue) ) {

                       return preValue;

             } else if ( numReg.test(curValue) ) {

                       return curValue;

             } else {

                       return 0;

             }

    })

}

转载于:https://my.oschina.net/u/1054538/blog/759128

你可能感兴趣的文章
Dubbo点滴(2)之集群容错
查看>>
检测不到兼容的键盘驱动程序
查看>>
listbox用法
查看>>
冲刺第九天 1.10 THU
查看>>
传值方式:ajax技术和普通传值方式
查看>>
Linux-网络连接-(VMware与CentOS)
查看>>
寻找链表相交节点
查看>>
AS3——禁止swf缩放
查看>>
linq 学习笔记之 Linq基本子句
查看>>
[Js]布局转换
查看>>
Hot Bath
查看>>
国内常用NTP服务器地址及
查看>>
Java annotation 自定义注释@interface的用法
查看>>
Apache Spark 章节1
查看>>
phpcms与discuz的ucenter整合
查看>>
Linux crontab定时执行任务
查看>>
mysql root密码重置
查看>>
33蛇形填数
查看>>
选择排序
查看>>
SQL Server 数据库的数据和日志空间信息
查看>>