Um eine forSchleife 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#findIndexstoppt 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, -1wenn der Rückruf niemals einen wahrheitsgemäßen Wert zurückgibt. Array#findstoppt auch, wenn es findet, wonach Sie suchen, aber es gibt den Eintrag zurück, nicht seinen Index (oder undefinedwenn 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 someFunktion 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.eachein 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
}
});