Javascript 如何检查数组中是否存在值并获取下一个值?

Javascript 如何检查数组中是否存在值并获取下一个值?,javascript,arrays,Javascript,Arrays,我有一个数组让x=[”,“comp”,“myval”,“view”,“1”] 我想首先检查数组中是否存在值“comp”,如果存在,则获取下一个值。有什么想法吗 let x = ["", "comp", "myval", "view", "1"]; if (x.indexOf(yourVal) >= 0) { let nextValue = x[x.indexOf(yourVal) + 1]; } else { // doesn't exist. } 注意:

我有一个数组
让x=[”,“comp”,“myval”,“view”,“1”]

我想首先检查数组中是否存在值
“comp”
,如果存在,则获取下一个值。有什么想法吗

  let x = ["", "comp", "myval", "view", "1"];
  if (x.indexOf(yourVal) >= 0) {

   let nextValue = x[x.indexOf(yourVal) + 1];

  } else {
   // doesn't exist.
  }
注意:如果您的值是数组的最后一个值,则不会获得下一个值。

您可以这样做

var x=["","comp","myval","view","1"],
    l=-1!==x.indexOf("comp")?x[x.indexOf("comp")+1]:"no value";
console.log(l);

如果没有下一个值,可以使用函数并返回未定义的值

函数getNext(值,数组){ var p=数组。indexOf(value)+1; 如果(p){ 返回数组[p]; } } 设x=[“”、“comp”、“myval”、“view”、“1”] 日志(getNext('comp',x)); log(getNext('foo',x))
基本上,检查
“comp”
是否存在于
x
中,如果
true
-1
则返回
索引(“comp”)+1
,这是下一项,否则返回
-1
另一种方法是将第一个元素作为
未定义的
,然后获取搜索值的索引并返回
数组[索引+1]

由于第一个元素是
未定义的
,对于任何不匹配的情况,索引将返回
-1
,这将获取数组中的第一个元素

这种方法包括创建新的数组并使用
如果(索引)返回数组[index]
会更好,但这只是实现这一点的另一种方法

函数getNext(值,数组){ 变量a=[未定义].concat(数组) var p=a.indexOf(值)+1; 返回a[p]; } 设x=[“”、“comp”、“myval”、“view”、“1”] 日志(getNext('comp',x));
console.log(getNext('foo',x));
您可能重复在数组上循环两次。最好将索引值保存在一个变量中
let x = ["", "comp", "myval", "view", "1"]

let nextIndex = x.indexOf('comp') > -1 ? x.indexOf('comp') + 1 : -1;