Atualmente estou usando o Angular 2.0. Eu tenho uma matriz da seguinte maneira:
var channelArray: Array<string> = ['one', 'two', 'three'];
Como posso verificar no TypeScript se o channelArray contém uma string 'três'?
javascript
arrays
typescript
code1
fonte
fonte
channelArray: string[]
Respostas:
O mesmo que no JavaScript, usando Array.prototype.indexOf () :
Ou usando o ECMAScript 2016 Array.prototype.includes () :
Observe que você também pode usar métodos como o mostrado por @Nitzan para encontrar uma string. No entanto, você normalmente não faria isso para uma matriz de strings, mas para uma matriz de objetos. Lá esses métodos foram mais sensatos. Por exemplo
Referência
Array.find ()
Array.some ()
Array.filter ()
fonte
[ts] Property 'includes' does not exist on type 'string[]'
erro, preciso atualizar meu tsconfig para suportar esse recurso do ecma 6?"lib": ["es7", "dom"]
Você pode usar o método some :
Você pode usar o método find :
Ou você pode usar o método indexOf :
fonte
Se o seu código for baseado no ES7:
Caso contrário, por exemplo, você está usando o IE sem transpile babel:
o
indexOf
método retornará a posição que o elemento tem na matriz, por isso usamos!==
diferente de -1 se a agulha for encontrada na primeira posição.fonte
Observe também que a palavra-chave "in" não funciona em matrizes. Funciona apenas em objetos.
O teste de inclusão da matriz é
fonte
Usar a matriz JavaScript includes () Método
Experimente você mesmo » link
Definição
O método includes () determina se uma matriz contém um elemento especificado.
Este método retorna true se a matriz contém o elemento e false se não.
fonte
O TS possui muitos métodos utilitários para matrizes disponíveis através do protótipo de matrizes. Existem vários que podem atingir esse objetivo, mas os dois mais convenientes para esse fim são:
Array.indexOf()
Aceita qualquer valor como argumento e, em seguida, retorna o primeiro índice no qual um determinado elemento pode ser encontrado na matriz ou -1 se não estiver presente.Array.includes()
Aceita qualquer valor como argumento e, em seguida, determina se uma matriz inclui esse valor. O método retornandotrue
se o valor for encontrado, caso contráriofalse
.Exemplo:
fonte
Você pode usar
filter
tambémfonte
faça assim:
fonte