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'?
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
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
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.
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');
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.
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:
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.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
fait comme ça:
departments: string[]=[];
if(this.departments.indexOf(this.departmentName.trim()) >-1 ){
return;
}