当前位置:首页 > 谈天说地 > 正文内容

js获取对象的值的方法(js对象取值的方法)

34资源网2021年12月27日 10:41513
原生Math.max方法

Math.max 方法不能接收数组,可以使用ES6的…将数组打散

const arr = [111, 12, 111, 34, 2, 5, 76];
console.log(Math.max(...arr));

当然也可以用apply方法调用

console.log(Math.max.apply(null, arr));
遍历获取最大值

遍历数组,依次比较,保存较大的数,最终得到的就是最大值,这里使用forEach遍历

function max2(arr) {
    let result = -Infinity;
    arr.forEach((item) => {
        if (item > result) {
            result = item;
        } 
    });
    return result;
}
console.log(max2(arr));
利用排序获取最大值

将数组使用sort方法排序后,第一个元素或最后一个元素就是最大值,再用shift或者pop方法取出(由升序还是降序决定),值得注意的是这两个方法会修改原数组,可以使用slice方法复制一份数组再执行弹出元素操作

function max3(arr) {
    return arr.sort((a, b) => a - b).slice().pop();
}
console.log(max3(arr));
使用filter排除小的值

使用filter函数依次取出<自身的元素,当取不出元素即返回的函数长度===零时,就取得了最大值,至于为什么用递归不用循环,用IIFE不用先声明后使用,嗯,就是单纯的不想

(function greater(arr, idx) {
    const res = arr.filter(item => item > arr[idx]);
    if (res.length === 1) {
        console.log(res[0]);
        return res[0];
    }
    greater(arr, idx + 1);
})(arr, 0);
使用every判断自己是否是最大值

使用every的原理和使用filter的原理类似,即当所有元素都<=本身的时候,本身就是最大值

(function greater(arr, idx) {
    if (arr.every(item => item <= arr[idx])) {
        console.log(arr[idx]);
        return arr[idx];
    }
    greater(arr, idx + 1);
})(arr, 0);
使用递归模拟数组方法

和上面两个方法类似,只是内层用了递归和IIFE模拟every

(function outer(arr, i) {
    let flag = function inner(arr, j) {
        if (arr[j] <= arr[i]) {
            return false;
        }
        return arr.length < j + 1 ? inner(arr, j + 1) : true;
    }(arr, 0);
    if (flag) {
        console.log(arr[i - 1]);
        return arr[i - 1];
    }
    outer(arr, i + 1);
})(arr, 0);

看完文章,还可以用支付宝扫描下面的二维码领取一个支付宝红包,目前可领1-88元不等

支付宝红包二维码

除了扫码可以领取之外,大家还可以(复制 720087999 打开✔支付宝✔去搜索, h`o`n.g.包哪里来,动动手指就能领)。

看下图所示是好多参与这次活动领取红包的朋友:

支付宝红包

扫描二维码推送至手机访问。

版权声明:本文由34楼发布,如需转载请注明出处。

本文链接:https://www.34l.com/post/4138.html

分享给朋友:

相关文章

用一个仍然造句和用三个仍然造句
用一个仍然造句和用三个仍然造句

用一个仍然造句:老张生病了,但他仍然坚守在工作岗位上。虽然他学习英语三年了,但他仍然不能流利的使用英语对话。当今社会仍然有很多贫困地区的孩子上不起学校。这么多年没有见到老朋友,他的样貌仍然美丽动人。用三个仍然造句:虽然小明的学习成绩一直不好...

年轻人不讲武德和耗子尾汁什么意思?什么梗?
年轻人不讲武德和耗子尾汁什么意思?什么梗?

最近经常在朋友圈,抖音上面刷到一些视频评论说年轻人不讲5的和耗子尾汁,小编看着感觉好奇怪,刚开始有点懵逼,结果去网上查了一下才知道,这是太极大师马保国老师讲的。究竟这个梗是怎么来的呢?其实,刚开始人家只是取笑这个马保国大师的梗,后面没有想到...

古罗马大诗人贺拉斯的两句至理名言分享
古罗马大诗人贺拉斯的两句至理名言分享

1、苦难显才华,好运隐天资。2、人人皆有弱点,谁若想要寻个没有缺点的朋友,就永远找不着他所要追寻的。...

华为、苹果,为何“盯”上二手机?
华为、苹果,为何“盯”上二手机?

图源:摄图网 编者按:本文来自微信公众号松果财经(ID:songguocaijing1),创业邦经授权转载 继苹果后,华为近日也正式官宣开启二手手机业务,并表示此举是为了提升电子产品的循环再利用。华为官方承诺所售二手手机均为正品且经过严格...

直播间里“拆盲盒”,二手电商平台「Whatnot」拆出15亿美元丨快鲤鱼海外
直播间里“拆盲盒”,二手电商平台「Whatnot」拆出15亿美元丨快鲤鱼海外

靠着直播带货和“拆盲盒”,二手潮品电商平台 Whatnot 在今年已经完成了3轮融资,公司估值达到 15 亿美元,成立2年便跻身独角兽之列。 通过商品认证转卖、直播拍卖、直播间开“盲盒”等看似有点“中国味”的玩儿法,Whatnot一改美国...

爱奇艺“水逆”一整年
爱奇艺“水逆”一整年

图源:摄图网 编者按:本文来自微信公众号锌财经(ID:xincaijing),作者:路世明,编辑:大风,创业邦经授权转载 12月1日,有消息称,当天爱奇艺开始进行一轮大规模裁员。多位被裁员工称,此次裁员是爱奇艺历史上规模最大的一轮裁员,部...