[英]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.