有沒有更好的方法來處理檢查多個值。當我有超過3個選擇時,它開始變得非常忙碌。有條件,如果對於很多值,更好的方法
if (myval=='something' || myval=='other' || myval=='third') {
}
PHP有一個叫做in_array()
函數的二手這樣的:
in_array($myval, array('something', 'other', 'third'))
是否有類似的東西在JS或jQuery的?
有沒有更好的方法來處理檢查多個值。當我有超過3個選擇時,它開始變得非常忙碌。有條件,如果對於很多值,更好的方法
if (myval=='something' || myval=='other' || myval=='third') {
}
PHP有一個叫做in_array()
函數的二手這樣的:
in_array($myval, array('something', 'other', 'third'))
是否有類似的東西在JS或jQuery的?
您可以通過使用某種哈希映射避免陣列上迭代:
var values = {
'something': true,
'other': true,
'third': true
};
if(values[myVal]) {
}
確實還沒有jQuery的工作;)
此外$.inArray
,你可以使用對象符號:
if (myval in {'something':1, 'other':1, 'third':1}) {
...
或
if (({'something':1, 'other':1, 'third':1}).hasOwnProperty(myval)) {
....
(請注意,如果客戶端已修改Object.prototype
的第一代碼將不工作。)
好吧,它會工作,它可能會給你一個誤報。還要注意,引號是多餘的。最後要注意的是,雖然這對於OP的特定情況非常適用,但它只在比較字符串值時才起作用。 – Phrogz 2011-04-08 20:20:28
從截取的清潔溶液中的10+ JAVASCRIPT SHORTHAND CODING TECHNIQUES:
普通寫法
if (myval === 'something' || myval === 'other' || myval === 'third') {
alert('hey-O');
}
速記
if(['something', 'other', 'third'].indexOf(myvar) !== -1) alert('hey-O');
if(values.hasOwnProperty(myval))將防止在原型鏈上找到屬性。 – JaredMcAteer 2011-04-08 19:42:06
雖然這是一個很好的建議OP的特殊情況,它可能會指出,它只適用於查找字符串值。 – Phrogz 2011-04-08 20:22:12