如何縮短此代碼?我想返回除了 「abc」 或 「某某」 或 「焊接工藝評定」在Javascript中將多個條件合併成一個條件
return this.value != "abc" && this.value != "xyz" && this.value != "pqr";
如何縮短此代碼?我想返回除了 「abc」 或 「某某」 或 「焊接工藝評定」在Javascript中將多個條件合併成一個條件
return this.value != "abc" && this.value != "xyz" && this.value != "pqr";
可以使用陣列中的所有值:
return ["abc","xyz","pqr"].indexOf(this.value) == -1;
或對象:
return !({"abc":1,"xyz":1,"pqr":1}).hasOwnProperty(this.value);
2最常用的方法是:
正則表達式
/^(abc|xyz|pqr)$/.test(this.value)
對象屬性查找
THIS.VALUE在({ 'ABC':1 'XYZ':1, '焊接工藝評定':1})
注意,正則表達式爲基礎的解決方案(#1)肯定會高於普通的比較(您的版本)或財產的查找速度較慢(#2) 。
此外,請記住財產查找是不是很可靠,因爲它可能會針對與命名相同的任何Object.prototype.*
性質任意鍵報告誤報(如「的toString」,「的valueOf」等)
令人驚訝的是,第一條語句在IE7中給出了一個錯誤,但在所有其他瀏覽器中效果不錯 – Hitz 2009-10-13 17:01:32
似乎Internet Explorer的版本7中尚未實現該方法。 – Gumbo 2009-10-13 17:11:24
對象方案不起作用。考慮this.value ==='toString'。 您可以通過使用hasOwnProperty來修復它 – 2009-10-14 05:18:38