获取数组中第一个大于x的元素的索引

12

我有这个数组:

var array = [400, 4000, 400, 400, 4000];

我该如何获取第一个值大于400的元素的索引?

注意:确保这个问题是独一无二的时候,我发现有些问题询问了同样的问题-但针对不同的编程语言。
如果有适用于JS的我的问题的重复,请务必让我看到。

4个回答

16

你可以在这里使用findIndex

检查这个片段

var array = [400, 4000, 400, 400, 4000];
var index=array.findIndex(function(number) {
  return number > 400;
});
console.log(index);


10
在 ES6 中,var index = array.findIndex(n => n > 400); 可以用来查找第一个大于400的元素在数组中的索引位置。 - Alnitak
@RobG 所以没错 - 我误读了 MDN 页面,以为它是在 ES5 中。 - Alnitak
1
版本号与年份数字相差一年有点令人困惑。也许他们应该跳过一年以对齐。;-) - RobG

5
你可以使用简单的 for 循环并检查每个元素。

var array = [400, 4000, 400, 400, 4000];

var result;

for(var i=0, l=array.length; i<l; i++){
  if(array[i] > 400){
    result = i;
    break;
  }
}

if(typeof result !== 'undefined'){
  console.log('number greater than 400 found at array index: ' + result);
} else {
  console.log('no number greater than 400 found in the given arrry.');
}

阅读: for - JavaScript | MDN


0
let array = [0, 0, 3, 5, 6];
let x     = 5;
let i     = 0;
for (; i<array.length && array[i] <= x; i++);

如果有一个元素大于 x,则返回第一个元素的索引。否则,返回数组的长度。

0
var array = [0, 0, 3, 5, 6];
var x = 5;
var i = 0;
while (array[i] <= x) {
    i++;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接