"Nous pouvons interrompre la boucle $.each() à une itération particulière en faisant en sorte que en faisant en sorte que la fonction de rappel renvoie false. Renvoyer non-faux est la même chose que l'instruction continue dans une boucle for ; elle passe immédiatement à l'itération suivante. l'itération suivante."
de http://api.jquery.com/jquery.each/
Oui, c'est vieux mais, pour répondre à la question, cela peut être un peu plus simple :
function findXX(word) {
$.each(someArray, function(index, value) {
$('body').append('-> ' + index + ":" + value + '<br />');
return !(value == word);
});
}
$(function() {
someArray = new Array();
someArray[0] = 't5';
someArray[1] = 'z12';
someArray[2] = 'b88';
someArray[3] = 's55';
someArray[4] = 'e51';
someArray[5] = 'o322';
someArray[6] = 'i22';
someArray[7] = 'k954';
findXX('o322');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
Un peu plus avec des commentaires :
function findXX(myA, word) {
let br = '<br />';//create once
let myHolder = $("<div />");//get a holder to not hit DOM a lot
let found = false;//default return
$.each(myA, function(index, value) {
found = (value == word);
myHolder.append('-> ' + index + ":" + value + br);
return !found;
});
$('body').append(myHolder.html());// hit DOM once
return found;
}
$(function() {
// no horrid global array, easier array setup;
let someArray = ['t5', 'z12', 'b88', 's55', 'e51', 'o322', 'i22', 'k954'];
// pass the array and the value we want to find, return back a value
let test = findXX(someArray, 'o322');
$('body').append("<div>Found:" + test + "</div>");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
NOTE : le tableau .includes()
peut mieux convenir ici https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
Ou juste .find()
pour obtenir ce https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find
0 votes
Êtes-vous sûr que c'est vrai si(someArray[i] == 'someArray')
3 votes
Je pense que cette condition (someArray[i] == 'someArray') devrait être (someArray[i] == word)
1 votes
@user970727 regardez ma réponse. Elle utilise la fonction intégrée (i,n) dans la commande each.