简化 for 循环以根据 JavaScript 中的条件查找数组中的项目(异步返回)
Simplifying a for loop to find an item in an array (returned asynchronously) by condition in JavaScript
我有一个名为 getItems
的函数,它异步地 returns 对象数组。每个对象都有一个 isOccupied
方法,returns 一个布尔值。我写了一个函数,它接受一个索引和 returns 数组 isOccupied
中第一个索引项是真还是假。
async itemIsOccupied(index) {
return getItems().then(items => {
if (items.length - 1 < index) return false;
return items[index].isOccupied()
});
}
这工作正常,但我必须使用异步函数来获取数组这一事实使它变得冗长。有没有办法简化这个?
我会像这样稍微清理一下...
async itemIsOccupied(index) {
const items = await getItems();
return index < items.length && items[index].isOccupied();
}
我有一个名为 getItems
的函数,它异步地 returns 对象数组。每个对象都有一个 isOccupied
方法,returns 一个布尔值。我写了一个函数,它接受一个索引和 returns 数组 isOccupied
中第一个索引项是真还是假。
async itemIsOccupied(index) {
return getItems().then(items => {
if (items.length - 1 < index) return false;
return items[index].isOccupied()
});
}
这工作正常,但我必须使用异步函数来获取数组这一事实使它变得冗长。有没有办法简化这个?
我会像这样稍微清理一下...
async itemIsOccupied(index) {
const items = await getItems();
return index < items.length && items[index].isOccupied();
}