当前位置:首页 > 谈天说地

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

34资源网2021-12-27930
原生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);

版权声明:34楼发布

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

分享给朋友:

相关文章

多认识人有什么好处?朋友多好办事我是这么理解的

多认识人有什么好处?朋友多好办事我是这么理解的

多认识人有什么好处?俗话说,人多好办事,认识的人多了,你的路子就宽了,想办什么事情,跟大家一商量,人家都会给你出出主意,比起自己一个人在那瞎折腾,要好很多。这点,我相信很多朋友都深有体会吧。…

华为小米革了康佳长虹们的命,海信怎么办?

华为小米革了康佳长虹们的命,海信怎么办?

编者按:本文来自陆玖财经,创业邦经授权发布。 电视行业真正需要面对的不是“大屏好还是小屏好”,用激光、OLED还是Mini LED之类的技术路线之争,而是一旦被视为“智能终端”,从产品形态到竞争模式的翻天覆地。 近日,海信子品牌Vidda…

现在农村做什么暴利比较好(农村适合的创业项目推荐)

现在农村做什么暴利比较好(农村适合的创业项目推荐)

在农村农民买东西的主要途径是农村赶集,这时候很多人会批发了东西来到农村集上去卖,这属小本暴利行业,可以赚不少钱。那么,农村赶集摆摊什么暴利?赶集卖什么利润大?下面一起来了解一下。 在农村赶集也是有不少工具可以售卖的,无外乎想要销量好的最好…

李佳琦:三十而已

李佳琦:三十而已

编者按:本文转自何加盐(ID:ihejiayan),作者何加盐,题图@李佳琦 微博,创业邦经授权转载。 李佳琦,生于1992年5月。 这是我迄今为止,写过的最年轻的商业人物。 按年份来算,他还要过27天,才进入30岁;按生日来算,他还要再过…

最便宜的智能机手机(最新手机排行榜2021 )

最便宜的智能机手机(最新手机排行榜2021 )

这个双11的手机市场,各家确实都是全力以赴了,因为一方面下半年就是这个重要节点,另一方面市场需求也不是很高,更需要加速出货。这不,评价君看到,iQOO Neo5活力版也发力了,原价2299元的机型,到手价最低1899元,十分彪悍。 这款i…