获取数组中的上一个和下一个项目

eya*_*alb 14 jquery

我有一系列数字

var projects = [ 645,629,648 ];
Run Code Online (Sandbox Code Playgroud)

和一个数字645

我需要获得下一个(629)和前一个(648)数字?

我可以用jquery吗?

Nic*_*ver 44

你可以使用带有模数的jquery $.inArray()方法使整体更短一些:

var p = [ 645,629,648 ];
var start = 645;
var next = p[($.inArray(start, p) + 1) % p.length];
var prev = p[($.inArray(start, p) - 1 + p.length) % p.length];
Run Code Online (Sandbox Code Playgroud)

或者,基于功能:

function nextProject(num) { 
  return p[($.inArray(num, p) + 1) % p.length]; 
}
function prevProject(num) { 
  return p[($.inArray(num, p) - 1 + p.length) % p.length];
}
Run Code Online (Sandbox Code Playgroud)

  • @Veger - 我想因为有些浏览器在某些时候不支持`indexOf`(我不确定哪个),如果存在它会在内部使用它,否则它会循环找到它. (2认同)