Actualmente estoy usando Angular 2.0. Tengo una matriz de la siguiente manera:
var channelArray: Array<string> = ['one', 'two', 'three'];
¿Cómo puedo verificar en TypeScript si channelArray contiene una cadena 'tres'?
javascript
arrays
typescript
código1
fuente
fuente
channelArray: string[]
Respuestas:
Lo mismo que en JavaScript, usando Array.prototype.indexOf () :
O usando ECMAScript 2016 Array.prototype.includes () :
Tenga en cuenta que también puede usar métodos como los mostrados por @Nitzan para encontrar una cadena. Sin embargo, normalmente no lo haría para una matriz de cadenas, sino para una matriz de objetos. Allí esos métodos fueron más sensatos. Por ejemplo
Referencia
Array.find ()
Array.some ()
Array.filter ()
fuente
[ts] Property 'includes' does not exist on type 'string[]'
error, ¿necesito actualizar mi tsconfig para admitir esta función ecma 6?"lib": ["es7", "dom"]
Puedes usar algún método :
Puedes usar el método find :
O puede usar el método indexOf :
fuente
Si su código está basado en ES7:
Si no es así, por ejemplo, está utilizando IE sin transpilar babel:
el
indexOf
método devolverá la posición que el elemento tiene en la matriz, por eso usamos!==
diferente de -1 si la aguja se encuentra en la primera posición.fuente
También tenga en cuenta que la palabra clave "in" no funciona en matrices. Funciona solo en objetos.
La prueba de inclusión de matriz es
fuente
Usar el método de matriz de JavaScript incluye ()
Pruébelo usted mismo » enlace
Definición
El método incluye () determina si una matriz contiene un elemento especificado.
Este método devuelve verdadero si la matriz contiene el elemento y falso si no.
fuente
TS tiene muchos métodos de utilidad para matrices que están disponibles a través del prototipo de matrices. Hay varios que pueden lograr este objetivo, pero los dos más convenientes para este propósito son:
Array.indexOf()
Toma cualquier valor como argumento y luego devuelve el primer índice en el que se puede encontrar un elemento dado en la matriz, o -1 si no está presente.Array.includes()
Toma cualquier valor como argumento y luego determina si una matriz incluye este valor. El método devuelvetrue
si se encuentra el valor, de lo contrariofalse
.Ejemplo:
fuente
Se puede utilizar
filter
tambiénfuente
hazlo así:
fuente