Um eine for
Schleife in JavaScript frühzeitig zu stoppen , verwenden Sie 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
}
}
Wenn Sie sich in einer ES2015-Umgebung (auch bekannt als ES6) befinden, können Sie für diesen speziellen Anwendungsfall Array#findIndex
(um den Index des Eintrags zu finden) oder Array#find
(um den Eintrag selbst zu finden) Folgendes verwenden: Beide können shimmed / polyfilled sein:
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
stoppt das erste Mal, wenn der Rückruf einen wahrheitsgemäßen Wert zurückgibt, und gibt den Index für diesen Aufruf an den Rückruf zurück; Es wird zurückgegeben, -1
wenn der Rückruf niemals einen wahrheitsgemäßen Wert zurückgibt. Array#find
stoppt auch, wenn es findet, wonach Sie suchen, aber es gibt den Eintrag zurück, nicht seinen Index (oder undefined
wenn der Rückruf niemals einen wahrheitsgemäßen Wert zurückgibt).
Wenn Sie eine ES5-kompatible Umgebung (oder einen ES5-Shim) verwenden, können Sie die neue some
Funktion für Arrays verwenden, die einen Rückruf aufruft, bis der Rückruf einen wahrheitsgemäßen Wert zurückgibt:
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`
}
});
Wenn Sie jQuery verwenden, können Sie jQuery.each
ein Array durchlaufen. das würde so aussehen:
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
}
});