कैसे जावास्क्रिप्ट में एक बयान में कई शर्तों को निर्दिष्ट करने के लिए


87

यहाँ है कि मैं दो स्थितियों का उल्लेख करता हूं अगर यह या यह

if (Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')
    PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

जवाबों:


154

जैसे अगर बयान की मुख्य ब्रैकेट में उन्हें जोड़ें

if ((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {
            PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

तार्किक रूप से इसे बेहतर तरीके से फिर से लिखा जा सकता है! इसका ठीक वही अर्थ है

if (Type == 2 && (PageCount == 0 || PageCount == '')) {

1
सहमत होना। इसके अलावा सशर्त के लिए एक घुंघराले ब्रैकेट नहीं था। वह मदद नहीं कर सकता था।
— तस्स

26

यहाँ ऐसा करने का एक वैकल्पिक तरीका है।

const conditionsArray = [
    condition1, 
    condition2,
    condition3,
]

if (conditionsArray.indexOf(false) === -1) {
    "do somthing"
}

या ईएस 6

if (!conditionsArray.includes(false)) {
   "do somthing"
}

19

मैं वर्तमान में बड़ी संख्या में स्थितियों की जाँच कर रहा हूं, जो कि कथन 4 पद्धति से परे यदि कथन पद्धति का उपयोग करते हुए अस्पष्ट हो जाती है। बस भविष्य के दर्शकों के लिए एक साफ दिखने वाला विकल्प साझा करने के लिए ... जो अच्छी तरह से तराजू, मैं उपयोग करता हूं:

var a = 0;
var b = 0;

a += ("condition 1")? 1 : 0; b += 1;
a += ("condition 2")? 1 : 0; b += 1;
a += ("condition 3")? 1 : 0; b += 1;
a += ("condition 4")? 1 : 0; b += 1;
a += ("condition 5")? 1 : 0; b += 1;
a += ("condition 6")? 1 : 0; b += 1;
// etc etc

if(a == b) {
    //do stuff
}

1
मुझे कोई टिप्पणी नहीं दिख रही है कि यह अविवेकपूर्ण व्यवहार है, इसलिए मुझे लगता है कि यह उपयोग करने के लिए बचा है। धन्यवाद!
— कज़िन कोकीन

2
यह ध्यान देने योग्य और उल्लेख करने योग्य है कि यह केवल तभी काम करता है जब सभी परिस्थितियों का सही मूल्यांकन होना चाहिए। दूसरे शब्दों में, यह लिखने का एक और तरीका है ANDलेकिन नहीं OR।
— मार्क क्रेमर


6

कभी-कभी आप मूर्तियों को और संयोजित करने के गुर भी पा सकते हैं।

जैसे उदहारण के लिए:

0 + 0 = 0

तथा

"" + 0 = 0

इसलिए

PageCount == 0
PageCount == ''

इस तरह लिखा जा सकता है:

PageCount+0 == 0

जावास्क्रिप्ट 0में बस के रूप में अच्छा है falseinverting में !यह बदल 0जाएगाtrue

!PageCount+0

एक भव्य कुल के लिए:

if ( Type == 2 && !PageCount+0 ) PageCount = elm.value;

यह है यदि आप अपने कोड को यथासंभव कम करना चाहते हैं, लेकिन यह कई अच्छी प्रथाओं के खिलाफ जाता है। अपने कोड को पठनीय रखें। यह उत्तर गुप्त है और आपके कोड को देखने वाले अगले व्यक्ति को कुछ गलती करने के लिए प्रेरित करेगा।
— belvederef

4
if((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == '')) {

        PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

यह संभव समाधानों में से एक हो सकता है, इसलिए 'या' है || नहीं !!


3

उन्हें एक अतिरिक्त जोड़ी में लपेटें और आप जाने के लिए अच्छे हैं।

if((Type == 2 && PageCount == 0) || (Type == 2 && PageCount == ''))
    PageCount= document.getElementById('<%=hfPageCount.ClientID %>').value;
}

-1
function go(type, pageCount) {
    if ((type == 2 && pageCount == 0) || (type == 2 && pageCount == '')) {
        pageCount = document.getElementById('<%=hfPageCount.ClientID %>').value;
    }
}

कृपया अपने कोड पर ध्यान दें, यदि आप पर्याप्त आश्वस्त नहीं हैं तो कृपया प्रश्नों का उत्तर न दें।
— हर्षित
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.