[英]javascript: best way to check if element exists in pre populated collection?
我们正在创建一个函数,如果传递的输入在某些预定义值中,它将返回 true:
function isEligbile(input){
return (input == 1 || input == 24 || input == 17);
}
或者
function isEligbile(input){
var eligibleInputs = {1: true, 24: true, 17: true};
return eligibleInputs[input];
}
我刚刚提到了 3 个符合条件的输入,但列表太长。 哪种方法是进行此类比较的最佳方法?
您不需要对象字面量来存储您的值,只需要一个数组,您可以使用indexOf()
从中检查授权值:
function isEligible(input){
var eligibleInputs = [1, 24, 17];
return eligibleInputs.indexOf(input) != -1;
}
请注意,在您的情况下,对象文字不是一个糟糕的选择。 写入时间可能更长,但执行速度也更快。
如果您确定要对符合条件的输入进行硬编码,我建议:
function isEligible(input) {
var eligibleInputs = [1, 17, 24];
return eligibleInputs.includes(input);
}
但是,如果符合条件的输入列表真的很长或可能会发生变化,您可能需要考虑使用不同的解决方案,例如从外部源加载列表。
我发现上面的代码片段比 OP 代码更好的解决方案是因为
注意:您代码中的函数称为“isEligbile”而不是“isEligible”,您可能需要解决此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.