it-swarm.com.de

Wie überprüfe ich, ob ein Array eine Zeichenfolge in TypeScript enthält?

Derzeit verwende ich Angular 2.0. Ich habe ein Array wie folgt:

var channelArray: Array<string> = ['one', 'two', 'three'];

Wie kann ich in TypeScript überprüfen, ob das channelArray eine Zeichenfolge 'Drei' enthält?

185
code1

Dasselbe wie in JavaScript mit Array.prototype.indexOf () :

console.log(channelArray.indexOf('three') > -1);

Oder verwenden Sie ECMAScript 2016 Array.prototype.includes () :

console.log(channelArray.includes('three'));

Beachten Sie, dass Sie auch Methoden wie @Nitzan verwenden können, um eine Zeichenfolge zu finden. Normalerweise würden Sie dies jedoch nicht für ein String-Array tun, sondern für ein Array von Objekten. Dort waren diese Methoden vernünftiger. Zum Beispiel

const arr = [{foo: 'bar'}, {foo: 'bar'}, {foo: 'baz'}];
console.log(arr.find(e => e.foo === 'bar')); // {foo: 'bar'} (first match)
console.log(arr.some(e => e.foo === 'bar')); // true
console.log(arr.filter(e => e.foo === 'bar')); // [{foo: 'bar'}, {foo: 'bar'}]

Referenz

Array.find ()

Array.some ()

Array.filter ()

376
chris p bacon

Sie können die eine Methode verwenden :

console.log(channelArray.some(x => x === "three")); // true

Sie können die Find-Methode verwenden :

console.log(channelArray.find(x => x === "three")); // three

Oder Sie können die indexOf-Methode verwenden :

console.log(channelArray.indexOf("three")); // 2
106
Nitzan Tomer

Wenn Ihr Code auf ES7 basiert:

channelArray.includes('three'); //will return true or false

Wenn nicht, verwenden Sie zum Beispiel IE ohne babel transpile:

channelArray.indexOf('three') !== -1; //will return true or false

die indexOf -Methode gibt die Position zurück, die das Element im Array hat. Aus diesem Grund verwenden wir !==, die sich von -1 unterscheidet, wenn die Nadel an der ersten Position gefunden wird.

6
alejoko

Beachten Sie auch, dass Schlüsselwort "in" nicht für Arrays funktioniert. Es funktioniert nur mit Objekten.

propName in myObject

Array-Inklusionstest ist

myArray.includes('three');
2
David Dehghan

Verwenden Sie die JavaScript Array includes () Methode

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var n = fruits.includes("Mango");

Probieren Sie es aus " Link

Definition

Die Methode includes () bestimmt, ob ein Array ein bestimmtes Element enthält.

Diese Methode gibt true zurück, wenn das Array das Element enthält, und false, wenn nicht.

1
Basi

TS verfügt über viele Dienstprogrammmethoden für Arrays, die über den Prototyp von Arrays verfügbar sind. Es gibt mehrere, die dieses Ziel erreichen können, aber die zwei für diesen Zweck am besten geeigneten sind:

  1. Array.indexOf() Nimmt einen beliebigen Wert als Argument und gibt dann den ersten Index zurück, an dem ein bestimmtes Element im Array gefunden werden kann, oder -1, wenn es nicht vorhanden ist.
  2. Array.includes() Nimmt einen beliebigen Wert als Argument und bestimmt dann, ob ein Array diesen Wert enthält. Die Methode, die true zurückgibt, wenn der Wert gefunden wird, andernfalls false.

Beispiel:

var channelArray: string[] = ['one', 'two', 'three'];
console.log(channelArray.indexOf('three'));      // 2
console.log(channelArray.indexOf('three') > -1); // true
console.log(channelArray.indexOf('four') > -1);  // false
console.log(channelArray.includes('three'));     // ture
0

mache das so:

departments: string[]=[];
if(this.departments.indexOf(this.departmentName.trim()) >-1 ){
            return;
    }
0