溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

js怎么查找json數(shù)據(jù)中的最大值和最小值

發(fā)布時(shí)間:2023-04-18 10:14:09 來源:億速云 閱讀:127 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下js怎么查找json數(shù)據(jù)中的最大值和最小值的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    js查找json數(shù)據(jù)中的最大值和最小值

    js操作數(shù)組的方式有很多種,查找json數(shù)據(jù)中的最大值和最小值也是經(jīng)常用到,那么接下來就介紹2種方式來實(shí)現(xiàn)。

    先準(zhǔn)備好json數(shù)據(jù),根據(jù)數(shù)組中的age值比較大小:

    var array = [
        {name:'張三1',age:10},
        {name:'張三2',age:40},
        {name:'張三3',age:40},
        {name:'張三4',age:33},
        {name:'張三5',age:2},
        {name:'張三6',age:2},
    ]

    使用Math對(duì)象來獲取最大值和最小值

    1. 獲取最大值:

    var max = Math.max.apply(Math, array.map(function(o) {
        return o.age;
    }))
    console.log(max);// 40

    2. 獲取最小值:

    var min = Math.min.apply(Math, array.map(function(o) {
        return o.age;
    }))
    console.log(min);// 2

    使用for循環(huán)來獲取最大值和最小值

    1. 獲取最大值:

    var max = arr[0].age;
        for (var i = 1; i < arr.length; i++) {
        max = max < arr[i].age ? arr[i].age : max;
    }
    console.log(max);// 40

    2. 獲取最小值:

    var min = arr[0].age;
    for (var i = 1; i < arr.length; i++) {
        min = min > arr[i].age ? arr[i].age : min;
    }
    console.log(min);// 2

    獲取最大值和最小值返回對(duì)應(yīng)的json數(shù)據(jù)

    1. 獲取含有最大值的數(shù)據(jù):

    var maxAgeArr = arr.filter(item=>item.age==max);
    console.log(maxAgeArr);//[{name:'張三2',age:40},{name:'張三3',age:40}]

    2. 獲取含有最小值的數(shù)據(jù):

    var minAgeArr = arr.filter(item=>item.age==min);
    console.log(minAgeArr);//[{name:'張三5',age:2},{name:'張三6',age:2}]

    用reduce()獲取JSON中某個(gè)字段值最大的項(xiàng)

    需求

    獲取JSON中value值最大的項(xiàng)

    [{
      value: 1
    },{
      value: 2
    },{
      value: 3
    }]

    語法

    array.reduce(callback[, initialValue])
    參數(shù)說明
    array必需。數(shù)組對(duì)象
    callback必需。一個(gè)接受最多四個(gè)參數(shù)的函數(shù)。對(duì)于數(shù)組中的每個(gè)元素,reduce 方法都會(huì)調(diào)用 callback函數(shù)一次。
    initialValue可選。如果指定 initialValue,則它將用作初始值。第一次調(diào)用 callback 函數(shù)會(huì)將此值作為參數(shù)。

    返回值

    通過最后一次調(diào)用回調(diào)函數(shù)獲得的累積結(jié)果。

    回調(diào)函數(shù)語法

    function callbackfn(previousValue, currentValue, currentIndex, array)
    參數(shù)說明
    previousValue通過上一次調(diào)用回調(diào)函數(shù)獲得的值。如果向 reduce 方法提供 initialValue,則在首次調(diào)用函數(shù)時(shí),previousValue 為 initialValue。
    currentValue當(dāng)前數(shù)組元素的值。
    currentIndex當(dāng)前數(shù)組元素的數(shù)字索引。
    array包含該元素的數(shù)組對(duì)象。

    示例:

    let maxValue = data.reduce((prev, cur) => {
      return prev.value > cur.value ? prev : cur
    })
    // maxValue = { value:3 }

    以上就是“js怎么查找json數(shù)據(jù)中的最大值和最小值”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI