2015-08-17 9 views
15

TypeScript modo più semplice per verificare se l'elemento esiste in array come C# Linq Any (utilizzando qualsiasi libreria). Qualcosa di simileTypeScript modo più semplice per verificare se l'elemento esiste in array come C# Linq Any (utilizzando qualsiasi libreria)

var myArray=[1,2,3,4]; 
 

 
var is_3_Exist=myArray.Any(x=> x==3);

+2

possibile duplicato del [Determinare se una matrice contiene un valore] (http://stackoverflow.com/questions/1181575/define-if-an-array-contiene-a-value) –

risposta

26

Uso .some:

myArray.some(x=>x==3);

+1

Spiacente, myArray.some (x => x == 3); non è supportato nel vecchio browser –

+3

Polyfill it: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/some#Polyfill – basarat

1

Se questa è l'unica cosa che devi fare si dovrebbe andare per .some (con polyfill) se invece vuoi la funzionalità Linq anche per altre cose dovresti dare un'occhiata a https://github.com/ReactiveX/IxJS.

+0

Il pacchetto nuget non funziona. Ho trovato TypeScriptLinq funzionante. –

+0

https://github.com/Reactive-Extensions/IxJS dovrebbe funzionare, è un repository gestito da microsoft. – Nypan

+0

L'ho controllato e il pacchetto non funziona. –

1

FIDDLE:https://jsfiddle.net/vktawbzg/

NPM:https://www.npmjs.com/package/linqscript

GitHub:https://github.com/sevensc/linqscript

Date un'occhiata al mio Github repository. Sarebbe bello se voi ragazzi poteste aiutare a migliorarlo! https://github.com/sevensc/linqscript

Sintassi:

list.Any(c => c.Name === ("Apple")) 
+0

Potresti dirmi come collegare il tuo linqscript ai file TS già esistenti? E cosa dovrei fare per chiamare questa roba dal mio codice? – user216652

+0

ho fatto un pacchetto di NPM, arrivare lì: 'NPM installa linqscript' https://www.npmjs.com/package/linqscript è necessario importare lo spazio dei nomi. Consulta il file Leggimi per maggiori informazioni. – seven

+0

Ok, ho visto il pacchetto ma non capisco come usarlo dal mio codice TS. Potresti per favore lasciare una riga di dettagli? – user216652

1

È possibile utilizzare il metodo FindIndex:

if(myArray.findIndex(x => x === 3) >= 0) { 
    // foud myArray element equals to 3 
} 
Problemi correlati