Kon*_*ten 3 javascript foreach typescript
我想迭代使用,forEach并且,当找到正确的元素时,返回值.我的印象是一个简单的return内部forEach就足够了,但是我知道调用语句中的结果是undefined.
因此,我必须声明一个输出变量作为整个方法的范围并勾选所有元素,尽管事实上已经找到了正确的元素.(元素是独一无二的.)
getMenuIndex(url) {
let output = -1;
this.menus.forEach(app => {
app.subs.forEach(sub => {
console.log(sub.link + " vs " + url);
if (sub.link === url)
// return sub.id;
output = sub.id;
});
});
return output;
}
Run Code Online (Sandbox Code Playgroud)
这是代码味道很长的路.是否有更简洁的方法来选择与URL条件匹配的元素的ID?
幸运的是,我们for..of在TypeScript和ES6中有这样的场景:
getMenuIndex(url) {
for (const app of this.menus) {
for (const sub of app.subs) {
console.log(sub.link + " vs " + url);
if (sub.link === url)
return sub.id;
}
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
在forEach有明显限制的情况下,例如await/ yield或return/ ,它非常有用break.
正如其他答案所说,有一些数组方法可以更好地适应这种情况.虽然TypeScript ES5目标for..of被定制为常规for,因此本身是最快的解决方案.
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |