2016-07-10 8 views
2

Wie finden Sie index==2 in TypeScript?TypeScript: Schlüssel/Wert im Objekt finden (Listenverständnis?)

myObj = { 
    policy : { 
      index: 1, 
      page : "/summer" 
     }, 
    purchase : { 
      index: 2, 
      page : "/sun" 
     } 
} 

z.

for (var key in myObj) { 
    if (myObj.hasOwnProperty(key)) { 
    if (myObj[key].index === 2) 
     console.log("Found."); 
    } 
} 

Wie in JS oder TS effizienter?

+4

Das gleiche wie, wie Sie in js tun – Zen

+0

Das ist sehr enttäuschend. Das Argument "TypeScript hat viel von CoffeeScript genommen" war also eine eklatante Lüge? – nottinhill

+1

Wer hat je gesagt, dass Typoskript viel von CofeeScript genommen hat? Es ist eine Javascript-Obermenge. Wenn überhaupt, ist es näher an C#. : P Sie können immer lodash hinzufügen und verwenden (mit Typ Rückschluss). :) – toskv

Antwort

6

Javascript-weise ich würde verwenden, um die Object.keys() Funktion:

Object.keys(myObj).forEach(key => { 
    if (myObj[key].index === 2) { 
     console.log("Found."); 
    } 
}); 

Weil es die Notwendigkeit myObj.hasOwnProperty(key) zu prüfen entfernt.

Wenn Sie die Suche beenden wollen, wenn man gefunden:

Object.keys(myObj).some(key => myObj[key].index === 2); 
1

Verwendung Array.find:

Object.keys(myObj).find(k => myObj[k].index === 2) 

Dies wird die Tonart, in der Rückkehr der Übereinstimmung aufgetreten.

Verwandte Themen