繁体   English   中英

ES6 findIndex返回最高编号

[英]ES6 findIndex to return highest number

我想使用ES6 findIndex()方法来返回最大的数字。 我怎么做? 在下面的示例中,我只想返回ID最高的索引。

let index = context.state.locations.findIndex((l) => {l.id ??????  });

您可以使用Array#reduce方法获得简单的解决方案。 使用Array#findindex会更复杂。

假设第一个元素具有较大的id值,则将初始值设置为0 (起始索引)。 在回调中,将当前较大的id值(基于当前的maxIndex)与当前元素进行比较,并根据较大的值返回索引。

let index = context.state.locations.reduce((maxIndex, obj, curIndex, arr) => arr[maxIndex].id < obj.id ? curIndex : maxIndex, 0);

 var arr = [{ id: 23 }, { id: 2 }, { id: 27 }, { id: 5 }, { id: 58 }, { id: 50 }]; let index = arr.reduce((maxIndex, obj, curIndex, arr) => arr[maxIndex].id < obj.id ? curIndex : maxIndex, 0); console.log(index); 

您必须检查所有项目以获取更大的id并使用Array#reduce

 var array = [{ id : 3 }, { id : 42 }, { id : 2 }, { id : 15 }, { id : 13 }, { id : 99 }, { id : 1 }], index = array.reduce( (r, a, i, aa) => aa[r].id > a.id ? r : i, 0); console.log(index); console.log(array[index]); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM