Pour arrêter une for
boucle tôt dans JavaScript, vous utilisez break
:
var remSize = [],
szString,
remData,
remIndex,
i;
/* ...I assume there's code here putting entries in `remSize` and assigning something to `remData`... */
remIndex = -1; // Set a default if we don't find it
for (i = 0; i < remSize.length; i++) {
// I'm looking for the index i, when the condition is true
if (remSize[i].size === remData.size) {
remIndex = i;
break; // <=== breaks out of the loop early
}
}
Si vous êtes dans un environnement ES2015 (alias ES6), pour ce cas d'utilisation spécifique , vous pouvez utiliser Array#findIndex
(pour trouver l'index de l'entrée) ou Array#find
(pour trouver l'entrée elle-même), qui peuvent tous deux être shimmed / polyfilled:
var remSize = [],
szString,
remData,
remIndex;
/* ...I assume there's code here putting entries in `remSize` and assigning something to `remData`... */
remIndex = remSize.findIndex(function(entry) {
return entry.size === remData.size;
});
Array#find
:
var remSize = [],
szString,
remData,
remEntry;
/* ...I assume there's code here putting entries in `remSize` and assigning something to `remData`... */
remEntry = remSize.find(function(entry) {
return entry.size === remData.size;
});
Array#findIndex
s'arrête la première fois que le rappel renvoie une valeur de vérité, renvoyant l'index de cet appel au rappel; il retourne -1
si le rappel ne renvoie jamais de valeur de vérité. Array#find
s'arrête également quand il trouve ce que vous cherchez, mais il renvoie l'entrée, pas son index (ou undefined
si le rappel ne renvoie jamais une valeur de vérité).
Si vous utilisez un environnement compatible ES5 (ou un shim ES5), vous pouvez utiliser la nouvelle some
fonction sur les tableaux, qui appelle un rappel jusqu'à ce que le rappel renvoie une valeur de vérité:
var remSize = [],
szString,
remData,
remIndex;
/* ...I assume there's code here putting entries in `remSize` and assigning something to `remData`... */
remIndex = -1; // <== Set a default if we don't find it
remSize.some(function(entry, index) {
if (entry.size === remData.size) {
remIndex = index;
return true; // <== Equivalent of break for `Array#some`
}
});
Si vous utilisez jQuery, vous pouvez utiliser jQuery.each
pour parcourir un tableau; cela ressemblerait à ceci:
var remSize = [],
szString,
remData,
remIndex;
/* ...I assume there's code here putting entries in `remSize` and assigning something to `remData`... */
remIndex = -1; // <== Set a default if we don't find it
jQuery.each(remSize, function(index, entry) {
if (entry.size === remData.size) {
remIndex = index;
return false; // <== Equivalent of break for jQuery.each
}
});