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

时间:2010-03-23 08:25:07

标签: jquery

我有一组数字

var projects = [ 645,629,648 ];

和数字645

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

我可以用jquery吗?

3 个答案:

答案 0 :(得分:43)

你可以使用带有模数的jquery $.inArray() method来缩短整体时间:

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 nextProject(num) { 
  return p[($.inArray(num, p) + 1) % p.length]; 
}
function prevProject(num) { 
  return p[($.inArray(num, p) - 1 + p.length) % p.length];
}

答案 1 :(得分:4)

我不了解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()函数创建非常相似的东西。

答案 2 :(得分:2)

您只需要对数组进行一次排序,然后您就可以使用从//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]);