const filtered = array_of_things.filter(thing => {
const isCar = thing.item === 'car'
const colorIsRed = thing.color === 'red'
const isSUV = thing.type === 'SUV'
const priceIsHigh = thing.price >= 100
const widthIsTen = thing.width === 10
return isCar && colorIsRed && isSUV && priceIsHigh && widthIsTen
})
因此,在我的示例代码中,即使第一个比较为false,该代码仍会继续执行。我该怎么做才能使它以第一个错误结束,而不进行其余的比较?
这比每次比较都调用过滤器好吗?具有多个过滤器,例如:
const filter_SUV = array_of_things.filter(thing => thing.type === 'SUV')
const filter_red = filter_SUV.filter(thing => thing.color === 'red')
答案 0 :(得分:1)
不要创建单独的变量,只需将每个条件*hash == symCopy->hash_table[*index]->hash
d与其他条件一起返回:
&&
是的,这种模式比多次调用const filtered = array_of_things.filter(({ item, color, type, price, width }) => (
item === 'car' &&
color === 'red' &&
type === 'SUV' &&
price >= 100 &&
width === 10
));
效率更高,因为单个.filter
意味着该数组仅被迭代一次。