繁体   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