récupère les éléments précédents et suivants du tableau

j’ai un tableau de nombres

var projects = [ 645,629,648 ]; 

et un nombre 645

J’ai besoin des prochains (629) et précédents (648)?

puis-je le faire avec jQuery?

Vous pouvez le rendre un peu plus court en utilisant la $.inArray() jquery avec un module:

 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]; 

Ou, fonction basée:

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

Je ne sais pas à propos de jQuery, mais il est assez simple de créer quelque chose par vous-même (en supposant que vous ayez toujours des nombres uniques dans votre tableau):

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

L’appel de next() avec un numéro de projet renvoie le numéro de projet suivant. Quelque chose de très similaire peut être fait pour la fonction prev() .

Il vous suffit de sortinger le tableau une fois par la suite, vous pouvez simplement utiliser le code à partir de //start

Si le numéro n’est pas présent, rien n’est sorti

 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]);