javascript - Kako provjeriti sadrži li niz string u TypeScriptu?


Trenutno koristim Angular 2.0. Imam niz kako slijedi:

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

Kako mogu provjeriti u TypeScriptu sadrži li channelArray string 'three'?

Odgovor #1

Isto kao u JavaScriptu, koristeći Array.prototype.indexOf():

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

Ili koristeći ECMAScript 2016 Array.prototype.includes():

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

Imajte na umu da također možete koristiti metode prikazane od strane @Nitzan za pronalaženje niza. Međutim, to obično ne biste radili za niz stringova, već za niz objekata. Tamo su te metode bile smislenije. Na primjer

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

Referenca

Array.find()

Array.some()

Array.filter()

Odgovor #2

Možete koristiti neku metodu:

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

Možete koristiti metodu find:

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

Ili možete koristiti metodu indexOf:

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

Odgovor #3

Ako je vaš kod baziran na ES7 (ili višim verzijama):

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

Ako ne, na primjer koristite IE bez Babel transpilacije:

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

metoda indexOf će vratiti položaj koji element ima u nizu, zbog toga koristimo !== različito od -1 ako je igla pronađena na prvom položaju.

Odgovor #4

Također imajte na umu da ključna riječ "in" ne radi na nizovima. Radi samo na objektima.

propName in myObject

Test uključivanja u niz je

myArray.includes('three');

Odgovor #5

Koristite JavaScript Array includes() metodu

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

Isprobajte sami » link

Definicija

Metoda includes() određuje sadrži li niz određeni element.

Ova metoda vraća true ako niz sadrži element, a false ako ne sadrži.

Povezani članci