使用Math.max和Math.min求数组的最大值和最小值

正常情况下,如果我们求数组的值,用到的就是for循环,如果在代码中经常求最大值和最小值的话,会显得代码很乱。所以,就考虑一中最简单的方法求最大值。

使用Math里面自带的max和min方法

function getMaxOfArray(numArray) {
    return Math.max.apply(null, numArray);
}
直接调用一下上面的函数,就会返回数组中最大的值。

获取最小的就可以在上面那样修改一下就好

function getMinOfArray(numArray) {
    return Math.min.apply(null, numArray);
}
这两个方法就可以直接写到全局当中即可在每个地方都可以使用

有的时候,生成一个自己的库,想直接将方法放置到原生对象上面,但是有的小伙伴发现,放置了以后在使用for in 循环的时候竟然也可以循环出来

如果我就想放置到原生对象上面还不想被循环也就是 “枚举”,那我该肿么办

那就会需要用到原生对象方法Object.defineProperty()方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。

使用这个方法,我们就可以制作和原生方法一样的那种方便易用的方式。

如何使用呢?

将下面的代码运行一次,即可在原生对象上面添加方法,for循环也会查找不到

Object.defineProperty(Array.prototype, 'max', {
    writable: false,
    enumerable: false,
    configurable: true,
    value: function () {
        return Math.max.apply(null, this);
    }
});

Object.defineProperty(Array.prototype, 'min', {
    writable: false,
    enumerable: false,
    configurable: true,
    value: function () {
        return Math.min.apply(null, this);
    }
});

如何使用呢,直接在数组上调用即可

var arr = [54,545,2165,545,56];
console.log(arr.max());
console.log(arr.min());
即可返回最大值最小值


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值