Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. Array
  6. some()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

Array.prototype.some()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

Diesome()-Methode vonArray-Instanzen gibttrue zurück, wenn sie ein Element im Array findet, das die bereitgestellte Testfunktion erfüllt. Andernfalls gibt siefalse zurück.

Probieren Sie es aus

const array = [1, 2, 3, 4, 5];// Checks whether an element is evenconst even = (element) => element % 2 === 0;console.log(array.some(even));// Expected output: true

Syntax

js
some(callbackFn)some(callbackFn, thisArg)

Parameter

callbackFn

Eine Funktion, die für jedes Element im Array ausgeführt werden soll. Sie sollte einentruthy Wert zurückgeben, um anzuzeigen, dass das Element den Test besteht, und einenfalsy Wert andernfalls. Die Funktion wird mit den folgenden Argumenten aufgerufen:

element

Das aktuelle Element, das im Array verarbeitet wird.

index

Der Index des aktuellen Elements, das im Array verarbeitet wird.

array

Das Array, auf dassome() aufgerufen wurde.

thisArgOptional

Ein Wert, der alsthis verwendet werden soll, wenncallbackFn ausgeführt wird. Sieheiterative Methoden.

Rückgabewert

false, es sei denn,callbackFn gibt für ein Array-Element einentruthy Wert zurück, in welchem Falltrue sofort zurückgegeben wird.

Beschreibung

Diesome()-Methode ist eineiterative Methode. Sie ruft eine bereitgestelltecallbackFn-Funktion einmal für jedes Element in einem Array auf, biscallbackFn einentruthy Wert zurückgibt. Wenn ein solches Element gefunden wird, gibtsome() soforttrue zurück und stoppt die Iteration durch das Array. Andernfalls, wenncallbackFn für alle Elemente einenfalsy Wert zurückgibt, gibtsome()false zurück. Lesen Sie den Abschnitt überiterative Methoden, um mehr darüber zu erfahren, wie diese Methoden im Allgemeinen funktionieren.

some() wirkt wie der "es gibt"-Quantor in der Mathematik. Insbesondere für ein leeres Array gibt es für jede Bedingungfalse zurück.

callbackFn wird nur für Array-Indizes aufgerufen, denen Werte zugewiesen sind. Es wird nicht für leere Plätze indünn besetzten Arrays aufgerufen.

some() verändert das Array nicht, auf dem es aufgerufen wird, aber die alscallbackFn bereitgestellte Funktion kann es. Beachten Sie jedoch, dass die Länge des Arraysvor dem ersten Aufruf voncallbackFn gespeichert wird. Daher:

  • callbackFn wird keine Elemente besuchen, die über die ursprüngliche Länge des Arrays hinaus hinzugefügt wurden, als der Aufruf vonsome() begann.
  • Änderungen an bereits besuchten Indizes verursachen nicht, dasscallbackFn erneut für sie aufgerufen wird.
  • Wenn ein vorhandenes, noch nicht besuchtes Element des Arrays voncallbackFn geändert wird, wird sein Wert, der an diecallbackFn übergeben wird, der Wert zu dem Zeitpunkt sein, an dem dieses Element besucht wird.Gelöschte Elemente werden nicht besucht.

Warnung:Gleichzeitige Änderungen der oben beschriebenen Art führen häufig zu schwer verständlichem Code und sollten im Allgemeinen vermieden werden (außer in speziellen Fällen).

Diesome()-Methode istgenerisch. Sie erwartet nur, dass derthis-Wert einelength-Eigenschaft und integer-schlüsselige Eigenschaften hat.

Beispiele

Testen von Array-Elementwerten

Das folgende Beispiel prüft, ob irgendein Element im Array größer als 10 ist.

js
function isBiggerThan10(element, index, array) {  return element > 10;}[2, 5, 8, 1, 4].some(isBiggerThan10); // false[12, 5, 8, 1, 4].some(isBiggerThan10); // true

Testen von Array-Elementen mit Pfeilfunktionen

Pfeilfunktionen bieten eine kürzere Syntax für denselben Test.

js
[2, 5, 8, 1, 4].some((x) => x > 10); // false[12, 5, 8, 1, 4].some((x) => x > 10); // true

Prüfen, ob ein Wert in einem Array existiert

Um die Funktion derincludes()-Methode nachzubilden, gibt diese benutzerdefinierte Funktiontrue zurück, wenn das Element im Array existiert:

js
const fruits = ["apple", "banana", "mango", "guava"];function checkAvailability(arr, val) {  return arr.some((arrVal) => val === arrVal);}checkAvailability(fruits, "grapefruit"); // falsecheckAvailability(fruits, "banana"); // true

Irgendwelche Werte in Boolean konvertieren

js
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); // falsegetBoolean("false"); // falsegetBoolean(1); // truegetBoolean("true"); // true

Nutzung des dritten Arguments von callbackFn

Dasarray-Argument ist nützlich, wenn Sie auf ein anderes Element im Array zugreifen möchten, insbesondere wenn Sie keine existierende Variable haben, die auf das Array verweist. Das folgende Beispiel verwendet zuerstfilter(), um die positiven Werte zu extrahieren, und dannsome(), um zu prüfen, ob das Array streng zunehmend ist.

js
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

Nutzung von some() auf dünn besetzten Arrays

some() führt seine Prüfungsfunktion nicht auf leeren Plätzen aus.

js
console.log([1, , 3].some((x) => x === undefined)); // falseconsole.log([1, , 1].some((x) => x !== 1)); // falseconsole.log([1, undefined, 1].some((x) => x !== 1)); // true

Aufruf von some() auf Nicht-Array-Objekten

Diesome()-Methode liest dielength-Eigenschaft vonthis und greift dann auf jede Eigenschaft zu, deren Schlüssel eine nichtnegative Ganzzahl ist, die kleiner alslength ist, bis alle zugegriffen wurden odercallbackFntrue zurückgibt.

js
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

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.some

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp