Reputation: 1071
How can i shorten this code? I want to return all values except "abc" or "xyz" or "pqr"
return this.value != "abc" && this.value != "xyz" && this.value != "pqr";
Upvotes: 2
Views: 417
Reputation: 655239
You can use an array:
return ["abc","xyz","pqr"].indexOf(this.value) == -1;
Or an object:
return !({"abc":1,"xyz":1,"pqr":1}).hasOwnProperty(this.value);
Upvotes: 1
Reputation: 39168
2 most common ways are:
regex
/^(abc|xyz|pqr)$/.test(this.value)
object property lookup
this.value in ({'abc':1,'xyz':1,'pqr':1})
Note that regex-based solution (#1) will most definitely be slower than plain comparison (your version) or property lookup (#2).
Also, remember that property lookup is not very reliable, as it might report false positives for any key that's named the same as any of Object.prototype.*
properties (e.g. "toString", "valueOf", etc.)
Upvotes: 1