gpt4 book ai didi

javascript - 用惯用的 javascript 写一个过滤器

转载 作者:行者123 更新时间:2023-11-29 21:37:13 26 4
gpt4 key购买 nike

我有这个过滤器,但我不喜欢它:

var products = this.store.filter('product', function(product) {
var ok = true;
if (compatibility) {
ok = ok && product.compatibility == compatibility;
}
if (format) {
ok = ok && product.format == format;
}
if (priceRange) {
ok = ok && product.priceRange == priceRange;
}
if (productType) {
ok = ok && product.productType == productType;
}
return ok;
});

基本上,过滤函数必须为通过测试的产品返回true,为未通过测试的产品返回false。过滤器参数的值可以是 null

重写过滤器函数的更惯用的方法是什么?

最佳答案

对于每个失败的测试,立即返回 false;。如果您知道它失败了,就没有进一步处理的意义。

if( compatibility && product.compatibility != compatibility) {
return false;
}
// ...
return true;

或者,(提示:不要这样做!),你可以做一个非常长的单行:

return (!compatibility || product.compatibility == compatibility) && (!format || product.format == format) // ...
// interestingly this shortcuts just like the "immediately return false" solution

关于javascript - 用惯用的 javascript 写一个过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34537135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com