web-dev-qa-db-fra.com

Comment vérifier si un tableau contient une chaîne dans TypeScript?

Actuellement, j'utilise Angular 2.0. J'ai un tableau comme suit:

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

Comment puis-je vérifier dans TypeScript si channelArray contient une chaîne 'trois'?

185
code1

Identique à JavaScript, en utilisant Array.prototype.indexOf () :

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

Ou utilisez ECMAScript 2016 Array.prototype.includes () () :

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

Notez que vous pouvez également utiliser des méthodes comme celle montrée par @Nitzan pour trouver une chaîne. Cependant, vous ne le feriez généralement pas pour un tableau de chaînes, mais plutôt pour un tableau d'objets. Là, ces méthodes étaient plus raisonnables. Par exemple

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'}]

Référence

Array.find ()

Array.some ()

Array.filter ()

376
chris p bacon

Vous pouvez utiliser le ne méthode :

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

Vous pouvez utiliser le méthode de recherche :

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

Ou vous pouvez utiliser le méthode indexOf :

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

Si votre code est basé sur ES7:

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

Si ce n'est pas le cas, par exemple, vous utilisez IE sans Babel Transpile:

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

la méthode indexOf renverra la position de l'élément dans le tableau, raison pour laquelle nous utilisons !== différent de -1 si l'aiguille se trouve à la première position.

6
alejoko

Notez également que mot clé "in" ne fonctionne pas sur les tableaux. Cela ne fonctionne que sur les objets.

propName in myObject

Le test d'inclusion de tableau est

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

Utilisez la méthode JavaScript Array () () , méthode

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

Essayez vous-même " lien

Définition

La méthode includes () détermine si un tableau contient un élément spécifié.

Cette méthode retourne true si le tableau contient l'élément et false sinon.

1
Basi

TS dispose de nombreuses méthodes d’utilité pour les tableaux qui sont disponibles via le prototype de tableaux. Plusieurs objectifs permettent d'atteindre cet objectif, mais les deux plus pratiques à cet effet sont:

  1. Array.indexOf() Prend n'importe quelle valeur en tant qu'argument, puis renvoie le premier index auquel un élément donné peut être trouvé dans le tableau, ou -1 s'il n'est pas présent.
  2. Array.includes() Prend n'importe quelle valeur en tant qu'argument, puis détermine si un tableau inclut cette valeur. La méthode renvoyant true si la valeur est trouvée, sinon false.

Exemple:

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

fait comme ça:

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