TypeScript:在对象中查找键/值(列表理解?)

mes*_*lds 3 javascript typescript angular

如何index==2在TypeScript中查找?

myObj = {
  policy : {
            index: 1,
            page : "/summer"
         },
  purchase : {
            index: 2,
            page : "/sun"
         }
}
Run Code Online (Sandbox Code Playgroud)

例如

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

如何更有效地在JS或TS中执行此操作?

Nit*_*mer 9

Javascript-wise我使用Object.keys()函数:

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

因为它不需要检查myObj.hasOwnProperty(key).

如果要在找到搜索时停止搜索:

Object.keys(myObj).some(key => myObj[key].index === 2);
Run Code Online (Sandbox Code Playgroud)


小智 5

用途Array.find:

Object.keys(myObj).find(k => myObj[k].index === 2)
Run Code Online (Sandbox Code Playgroud)

这将返回匹配发生的密钥。