prev和next项目我有数字得到阵列
var projects = [ 645,629,648 ];
的阵列和数量645
我需要得到下一个(629)和prev(648)号码?
我可以用jquery吗?
prev和next项目我有数字得到阵列
var projects = [ 645,629,648 ];
的阵列和数量645
我需要得到下一个(629)和prev(648)号码?
我可以用jquery吗?
可以使它有点短的整体使用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];
}
我不知道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]);
也许帮助: http://stackoverflow.com/questions/1058185/get-next-and-previous-elements-in-javascript-array – 2010-03-23 08:30:24
你有混合你的号码吗? 648不是该阵列中的前一个数字。什么是使用for循环,然后在找到所需的数字时,在索引的每一边取数字? – slugster 2010-03-23 08:30:59
@slugster - 是的*它是*数组是循环的前一个数字! – Veger 2010-03-23 08:47:13