| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/some | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.
Die some()-Methode von Array-Instanzen gibt true zurck, wenn sie ein Element im Array findet, das die bereitgestellte Testfunktion erfllt. Andernfalls gibt sie false zurck.
const array = [1, 2, 3, 4, 5];
// Checks whether an element is even
const even = (element) => element % 2 === 0;
console.log(array.some(even));
// Expected output: true
some(callbackFn)
some(callbackFn, thisArg)
callbackFnEine Funktion, die fr jedes Element im Array ausgefhrt werden soll. Sie sollte einen truthy Wert zurckgeben, um anzuzeigen, dass das Element den Test besteht, und einen falsy Wert andernfalls. Die Funktion wird mit den folgenden Argumenten aufgerufen:
thisArg OptionalEin Wert, der als this bei der Ausfhrung von callbackFn verwendet werden soll. Siehe iterative Methoden.
false, es sei denn, callbackFn gibt einen truthy Wert fr ein Array-Element zurck, in diesem Fall wird sofort true zurckgegeben.
Die some()-Methode ist eine iterative Methode. Sie ruft eine bereitgestellte callbackFn-Funktion einmal fr jedes Element in einem Array auf, bis die callbackFn-Funktion einen truthy Wert zurckgibt. Wenn ein solches Element gefunden wird, gibt some() sofort true zurck und stoppt die Iteration durch das Array. Andernfalls gibt some() false zurck, wenn callbackFn fr alle Elemente einen falsy Wert zurckgibt. Lesen Sie den Abschnitt ber iterative Methoden fr weitere Informationen darber, wie diese Methoden im Allgemeinen funktionieren.
some() handelt wie der "es existiert"-Quantor in der Mathematik. Insbesondere fr ein leeres Array gibt es false fr jede Bedingung zurck.
callbackFn wird nur fr Array-Indizes aufgerufen, denen Werte zugewiesen wurden. Es wird nicht fr leere Slots in dnn besetzten Arrays aufgerufen.
some() verndert das Array, auf dem es aufgerufen wird, nicht, aber die als callbackFn bereitgestellte Funktion kann es. Beachten Sie jedoch, dass die Lnge des Arrays vor der ersten Ausfhrung von callbackFn gespeichert wird. Daher:
callbackFn wird keine Elemente besuchen, die ber die ursprngliche Lnge des Arrays hinaus hinzugefgt wurden, als der Aufruf von some() begann.callbackFn erneut auf sie angewendet wird.callbackFn gendert wird, wird sein Wert, der an callbackFn bergeben wird, der Wert zu dem Zeitpunkt sein, an dem dieses Element besucht wird. Gelschte Elemente werden nicht besucht.Warnung: Gleichzeitige Modifikationen der oben beschriebenen Art fhren hufig zu schwer verstndlichem Code und sollten in der Regel vermieden werden (auer in besonderen Fllen).
Die some()-Methode ist generisch. Sie erwartet lediglich, dass der this-Wert eine length-Eigenschaft und ganzzahlig indizierte Eigenschaften hat.
Im folgenden Beispiel wird getestet, ob ein Element im Array grer als 10 ist.
function isBiggerThan10(element, index, array) {
return element > 10;
}
[2, 5, 8, 1, 4].some(isBiggerThan10); // false
[12, 5, 8, 1, 4].some(isBiggerThan10); // true
Pfeilfunktionen bieten eine krzere Syntax fr denselben Test.
[2, 5, 8, 1, 4].some((x) => x > 10); // false
[12, 5, 8, 1, 4].some((x) => x > 10); // true
Um die Funktion der includes()-Methode nachzuahmen, gibt diese benutzerdefinierte Funktion true zurck, wenn das Element im Array vorhanden ist:
const fruits = ["apple", "banana", "mango", "guava"];
function checkAvailability(arr, val) {
return arr.some((arrVal) => val === arrVal);
}
checkAvailability(fruits, "grapefruit"); // false
checkAvailability(fruits, "banana"); // true
const TRUTHY_VALUES = [true, "true", 1];
function getBoolean(value) {
if (typeof value === "string") {
value = value.toLowerCase().trim();
}
return TRUTHY_VALUES.some((t) => t === value);
}
getBoolean(false); // false
getBoolean("false"); // false
getBoolean(1); // true
getBoolean("true"); // true
Das array-Argument ist ntzlich, wenn Sie auf ein anderes Element im Array zugreifen mchten, insbesondere wenn Sie keine vorhandene Variable haben, die auf das Array verweist. Im folgenden Beispiel wird zunchst filter() verwendet, um die positiven Werte zu extrahieren, und dann some(), um zu prfen, ob das Array streng ansteigend ist.
const numbers = [3, -1, 1, 4, 1, 5];
const isIncreasing = !numbers
.filter((num) => num > 0)
.some((num, idx, arr) => {
// Without the arr argument, there's no way to easily access the
// intermediate array without saving it to a variable.
if (idx === 0) return false;
return num <= arr[idx - 1];
});
console.log(isIncreasing); // false
some() wird sein Prdikat nicht auf leere Slots anwenden.
console.log([1, , 3].some((x) => x === undefined)); // false
console.log([1, , 1].some((x) => x !== 1)); // false
console.log([1, undefined, 1].some((x) => x !== 1)); // true
Die some()-Methode liest die length-Eigenschaft von this und greift dann auf jede Eigenschaft zu, deren Schlssel eine nichtnegative ganze Zahl kleiner als length ist, bis alle zugegriffen wurden oder callbackFn true zurckgibt.
const arrayLike = {
length: 3,
0: "a",
1: "b",
2: "c",
3: 3, // ignored by some() since length is 3
};
console.log(Array.prototype.some.call(arrayLike, (x) => typeof x === "number"));
// false
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.some |
Array.prototype.some in core-jsArray.prototype.someArrayArray.prototype.every()Array.prototype.forEach()Array.prototype.find()Array.prototype.includes()TypedArray.prototype.some()Arrayat()concat()copyWithin()entries()every()fill()filter()find()findIndex()findLast()findLastIndex()flat()flatMap()forEach()includes()indexOf()join()keys()lastIndexOf()map()pop()push()reduce()reduceRight()reverse()shift()slice()some()sort()splice()toLocaleString()toReversed()toSorted()toSpliced()toString()unshift()values()with()[Symbol.iterator]()Object/FunctionDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |