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 le channelArray contient une chaîne «trois»?
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 le channelArray contient une chaîne «trois»?
Réponses:
Identique à JavaScript, en utilisant Array.prototype.indexOf () :
console.log(channelArray.indexOf('three') > -1);
Ou en utilisant ECMAScript 2016 Array.prototype.includes () :
console.log(channelArray.includes('three'));
Notez que vous pouvez également utiliser des méthodes telles que celles montrées par @Nitzan pour trouver une chaîne. Cependant, vous ne feriez généralement pas cela pour un tableau de chaînes, mais plutôt pour un tableau d'objets. Là, ces méthodes étaient plus sensées. 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
[ts] Property 'includes' does not exist on type 'string[]'
erreur, dois-je mettre à jour mon tsconfig pour prendre en charge cette fonctionnalité ecma 6?
"lib": ["es7", "dom"]
Vous pouvez utiliser la méthode some :
console.log(channelArray.some(x => x === "three")); // true
Vous pouvez utiliser la méthode find :
console.log(channelArray.find(x => x === "three")); // three
Ou vous pouvez utiliser la méthode indexOf :
console.log(channelArray.indexOf("three")); // 2
Si votre code est basé sur ES7:
channelArray.includes('three'); //will return true or false
Sinon, par exemple, vous utilisez IE sans transbile babel:
channelArray.indexOf('three') !== -1; //will return true or false
la indexOf
méthode retournera la position de l'élément dans le tableau, à cause de cela, nous utilisons !==
différent de -1 si l'aiguille se trouve à la première position.
Notez également que le mot clé "in" ne fonctionne pas sur les tableaux. Cela fonctionne uniquement sur les objets.
propName in myObject
Le test d'inclusion de tableau est
myArray.includes('three');
Utiliser la matrice JavaScript inclut la méthode ()
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var n = fruits.includes("Mango");
Essayez-le vous-même » lien
Définition
La méthode includes () détermine si un tableau contient un élément spécifié.
Cette méthode renvoie true si le tableau contient l'élément et false sinon.
TS a de nombreuses méthodes utilitaires pour les tableaux qui sont disponibles via le prototype des tableaux. Il y en a plusieurs qui peuvent atteindre cet objectif, mais les deux plus pratiques à cet effet sont:
Array.indexOf()
Prend n'importe quelle valeur comme argument, puis retourne 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 comme argument, puis détermine si un tableau inclut une cette valeur. La méthode retourne 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
Vous pouvez filter
aussi utiliser
this.products = array_products.filter((x) => x.Name.includes("ABC"))
fait comme ça:
departments: string[]=[];
if(this.departments.indexOf(this.departmentName.trim()) >-1 ){
return;
}
channelArray: string[]