Actualmente estoy usando Angular 2.0. Tengo un array como el siguiente:
var channelArray: Array<string> = ['one', 'two', 'three'];
¿Cómo puedo comprobar en TypeScript si el channelArray contiene una cadena 'tres'?
Lo mismo que en JavaScript, utilizando Array.prototype.indexOf():
console.log(channelArray.indexOf('three') > -1);
O usando ECMAScript 2016 Array.prototype.includes():
console.log(channelArray.includes('three'));
Tenga en cuenta que también podría utilizar métodos como los mostrados por @Nitzan para encontrar una cadena. Sin embargo, normalmente no lo harías para un array de cadenas, sino para un array de objetos. Ahí esos métodos eran más sensatos. Por ejemplo
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'}]
Referencia
Puedes utilizar el algún método:
console.log(channelArray.some(x => x === "three")); // true
Puede utilizar el método find:
console.log(channelArray.find(x => x === "three")); // three
O puede utilizar el método indexOf:
console.log(channelArray.indexOf("three")); // 2
Si tu código está basado en ES7:
channelArray.includes('three'); //will return true or false
Si no es así, por ejemplo, estás usando IE sin babel transpile:
channelArray.indexOf('three') !== -1; //will return true or false
el método indexOf
devolverá la posición que tiene el elemento en el array, por eso usamos !==
diferente de -1 si la aguja se encuentra en la primera posición.