javascript - ES6 findIndex 返回最高数

标签 javascript ecmascript-6

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

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

最佳答案

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

将初始值设置为 0(起始索引)假设第一个元素持有较大的 id 值。在回调中将当前较大的 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);

关于javascript - ES6 findIndex 返回最高数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41716696/

相关文章:

javascript - webpack - 具有相同结构但目录不同的多个条目和输出?

php - PHP 的嵌入式脚本语言?

javascript - 如何获取出现在父标签之前的textContent?

javascript - 使用 。在 [] 中进入一个新的范围

javascript - ES5 和 ES6 中的 Angular 2 依赖注入(inject)

javascript - 如何在定义后更改类表达式的构造函数名称?

javascript - 处理 JavaScript 错误

javascript - 如何使用 jQuery 获取输入字段的值

javascript - 增加 Map.get() 的结果

javascript - 在 Node.js 中,如何动态地将函数参数传递给子函数?