我有一个数组let x = ["", "comp", "myval", "view", "1"]
。
我想首先检查数组中是否存在值"comp"
,如果确实存在,则获取下一个值。有什么想法吗?
答案 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));