簡體   English   中英

僅在javascript中從對象中查找最大值和最小值

[英]Find max and min from a object in javascript only

嗨,我有一個如下所示的數組....

dataArray(7)[
{dataIndex: 0, specialEventID: 65268}
1
:
{dataIndex: 1, specialEventID: 65268}
2
:
{dataIndex: 1, specialEventID: 65271}
3
:
{dataIndex: 1, specialEventID: 65272}
4
:
{dataIndex: 2, specialEventID: 65270}
5
:
{dataIndex: 5, specialEventID: 65269}
6
:
{dataIndex: 6, specialEventID: 65269}
]

現在我想要每個 specialEventID 的最大和最小索引,例如 65268['max':1, 'min':0]

65271['max':1, 'min':1] //because only one object for 65271
 65272['max':1, 'min':1] //because only one object for 65272
 65270['max':2, 'min':2]//because only one object for 65270
 65270['max':5, 'min':6]

任何人都可以幫我找到上面的最大和最小索引嗎? 提前致謝。

您可以為結果獲取一個對象,其中specialEventID充當鍵和一個用於最小值和最大值的對象。

 var data = [{ dataIndex: 0, specialEventID: 65268 }, { dataIndex: 1, specialEventID: 65268 }, { dataIndex: 1, specialEventID: 65271 }, { dataIndex: 1, specialEventID: 65272 }, { dataIndex: 2, specialEventID: 65270 }, { dataIndex: 5, specialEventID: 65269 }, { dataIndex: 6, specialEventID: 65269 }], result = {}; data.forEach(function (o) { if (!result[o.specialEventID]) { result[o.specialEventID] = { min: o.dataIndex, max: o.dataIndex }; return; } if (result[o.specialEventID].min > o.dataIndex) { result[o.specialEventID].min = o.dataIndex; return; } if (result[o.specialEventID].max < o.dataIndex) { result[o.specialEventID].max = o.dataIndex; } }); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

 const dataArray = [ {dataIndex: 0, specialEventID: 65268}, {dataIndex: 1, specialEventID: 65268}, {dataIndex: 1, specialEventID: 65271}, {dataIndex: 1, specialEventID: 65272}, {dataIndex: 2, specialEventID: 65270}, {dataIndex: 5, specialEventID: 65269}, {dataIndex: 6, specialEventID: 65269} ]; const ret = dataArray.reduce((a,v) => { var k = v.specialEventID; a[k] = a[k] ? { min: Math.min(a[k].max, v. dataIndex), max: Math.max(a[k].max, v. dataIndex) } : { min: v.dataIndex, max: v.dataIndex}; return a; }, {}); console.log(ret);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM