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

时间:2017-03-07 06:55:22

标签: javascript arrays

我有一个数组let x = ["", "comp", "myval", "view", "1"]

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

5 个答案:

答案 0 :(得分:2)

CREATE TYPE connections_status AS ENUM ('accepted', 'pending');

注意:如果您的值是数组的最后一个值,则不会获得下一个值。

答案 1 :(得分:1)

你可以这样做

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

答案 2 :(得分:0)

如果没有下一个值,您可以使用函数并返回undefined。

function getNext(value, array) {
    var p = array.indexOf(value) + 1;
    if (p) {
        return array[p];
    }
}

let x = ["", "comp", "myval", "view", "1"]

console.log(getNext('comp', x));
console.log(getNext('foo', x));

答案 3 :(得分:0)

let x = ["", "comp", "myval", "view", "1"]

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

基本上,检查"comp"中是否存在x,如果true> -1,则返回indexOf("comp") + 1,这是下一项,否则返回{{1} }}

答案 4 :(得分:0)

替代方法可以是将第一个元素设为undefined,然后获取搜索值的索引并返回array[index + 1]

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

这种方法涉及创建新数组,使用if(index) return array[index]会更好,但这只是你如何实现这一目标的另一种方法。



function getNext(value, array) {
  var a = [undefined].concat(array)
  var p = a.indexOf(value) + 1;
  return a[p];
}

let x = ["", "comp", "myval", "view", "1"]

console.log(getNext('comp', x));
console.log(getNext('foo', x));