我想用TypeScript迭代对象属性.但是我想在找到特定对象后立即停止.
就像是:
function hasElement() {
let obj = {
a: 'a',
b: 'b',
c: 'c'
}
let found = false;
for (let i = 0; i < Object.keys(this.obj).length && !found; i++) {
let prop = obj[i];
found = prop === 'a';
}
return found;
}
console.log(hasElement());
Run Code Online (Sandbox Code Playgroud)
但是obj[i]不行,因为密钥不是数字.当然我可以使用break或跳转到标签,但在我看来它很难看,因为我宁愿首先指定循环条件.
这不是你用TypeScript迭代对象的方式.您正在寻找for..of:
for (const key of Object.keys(obj)) {
if (obj[key] === 'a') { return true; }
}
return false;
Run Code Online (Sandbox Code Playgroud)
您还可以使用.find():
const matchingKey = Object.keys(obj).find(key => obj[key] === 'a');
return Boolean(matchingKey); // convert to boolean.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12694 次 |
| 最近记录: |