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

我有一系列数字

var projects = [ 645,629,648 ]; 

和一个数字645

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

我可以用jquery吗?

你可以使用带有模数的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]; 

或者,基于function:

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

我不了解jQuery,但是自己创建一些东西相当简单(假设你的数组中总是有唯一的数字):

 var projects = [ 645,629,648 ]; function next(number) { var index = projects.indexOf(number); index++; if(index >= projects.length) index = 0; return projects[index]; } 

使用项目编号调用next()将返回下一个项目编号。 可以为prev()函数做一些非常相似的事情。

您只需要对数组进行一次排序,然后您就可以使用从//start的代码

如果不存在数字则不输出任何内容

 var projects = [ 645, 629, 648 ], number = 645, i = -1; projects.sort(function(a, b) { return a > b ? 1 : -1; }); //start i = projects.indexOf(number); if(i > 0) alert(projects[i-1]); if(i < (projects.length - 1) && i >= 0) alert(projects[i+1]);