Obecnie używam Angular 2.0. Mam tablicę w następujący sposób:
var channelArray: Array<string> = ['one', 'two', 'three'];
Jak mogę sprawdzić w TypeScript, czy tablica channelArray zawiera ciąg 'three'?
Tak samo jak w JavaScript, używając Array.prototype.indexOf():
console.log(channelArray.indexOf('three') > -1);
Lub używając ECMAScript 2016 Array.prototype.includes():
console.log(channelArray.includes('three'));
Zauważ, że możesz również użyć metod takich jak pokazane przez @Nitzan, aby znaleźć ciąg znaków. Jednak zazwyczaj nie robiłbyś tego dla tablicy łańcuchów, ale raczej dla tablicy obiektów. Tam te metody były bardziej sensowne. Na przykład
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'}]
Odnośnik
Możesz użyć jakiejś metody:
console.log(channelArray.some(x => x === "three")); // true
Możesz użyć metody find method:
console.log(channelArray.find(x => x === "three")); // three
Możesz też użyć metody indexOf:
console.log(channelArray.indexOf("three")); // 2
Jeśli twój kod jest oparty na ES7:
channelArray.includes('three'); //will return true or false
Jeśli nie, na przykład używasz IE bez babel transpile:
channelArray.indexOf('three') !== -1; //will return true or false
metoda indexOf
zwróci pozycję elementu w tablicy, z tego powodu używamy !==
różnej od -1 jeśli igła jest znaleziona na pierwszej pozycji.