जावास्क्रिप्ट IF स्टेटमेंट में OR कंडीशन का उपयोग कैसे करें?


108

मैं समझता हूँ कि जावास्क्रिप्ट में आप लिख सकते हैं:

if (A && B) { do something }

लेकिन मैं एक को कैसे लागू कर सकता हूं जैसे:

if (A OR B) { do something }

2
यह jQuery के विशिष्ट नहीं है। यह सिर्फ एक जावास्क्रिप्ट लाइब्रेरी है। आपका प्रश्न जावास्क्रिप्ट विशिष्ट है।
बालुस

2
@ बालसु वे लगभग इन दिनों पर्यायवाची हैं: P
Dolbz

1
@Dolbz pfooo असहमत !! : पी
वेब-स्टार

1
@ वेब-स्टार्स 2010 से बहुत बदल गए हैं :)
डॉल्बज़

@Dolbz mmm, उफ़ ...: पी और मैं अभी भी कुछ नहीं पता है के बाद से 2010
वेब सितारों

जवाबों:



84

ध्यान देने योग्य बात यह है कि अगर बीओटीएच और हैं तो ||भी वापस आ जाएंगे ।trueABtrue

जावास्क्रिप्ट में, यदि आप देख रहे हैं Aया दोनों नहींB , लेकिन आपको कुछ ऐसा करने की आवश्यकता होगी:

if( (A && !B) || (B && !A) ) { ... }

पहले वाक्यांश नहीं होना चाहिए "वर्थ नोटिंग दैट || ईथेर वर ए ऑर वर्जन बी इज ट्रू"? इसका तात्पर्य है कि आपने जो उल्लेख किया है वह (सत्य | सत्य) = सत्य है। जो सामान्य और समझ में आता है।
पुनीथ राज

10
(A &&! B) || (B &&! A) को A ^ B से बदला जा सकता है जो ज्यादा चिकना है

1
@Murplyx: ज्यादातर मामलों में हां, लेकिन 32 बिट रेंज के बाहर की संख्या विफल हो सकती है। (Math.pow(2,32)-1) ^ 0; // -1 (success)...Math.pow(2,32) ^ 0; // 0 (failure)

if (A ? !B : B) {...एक छोटा विकल्प होगा जिसमें 32-बिट सीमा नहीं होगी। या हो सकता हैif (!A != !B) {...

1
@squint 32 बिट श्रेणी के बाहर कभी भी सही या गलत क्यों होगा इसलिए वे केवल 0 या 1 हैं, और btw अगर आप संख्याओं का उपयोग करते हैं तो बूलियन मान प्राप्त करने के लिए n का उपयोग करें।




9

यहाँ मेरा उदाहरण है:

if(userAnswer==="Yes"||"yes"||"YeS"){
 console.log("Too Bad!");   
}

यह कहता है कि यदि उत्तर हां है या हां, तो उसी चीज की तुलना में हां होगा


1
क्या आपका जवाब किसी मौजूदा जवाब में सुधार करता है? यह एक विशिष्ट उपयोग मामला है?
21

यह काम है? मुझे लगता है कि कोड की तरह है, लेकिन यह वाक्यविन्यास त्रुटि है। मैं इस तरह से कोड करता हूं। if (name === 'Jam' || name === 'Jem' || name == 'Jum')
पेंगुइन

7
हां, मैंने उस कठिन तरीके की खोज की जिसमें आपको प्रत्येक कथन को अलग से शामिल करना होगा। मैंने काम किया है जो if (number === 1||2||3)पसंद है while (true); दूसरी और तीसरी स्थितियां पूछती हैं कि क्या 2 2 और / या 3 है। वे हमेशा इस कथन को सच मानते हैं कि हमेशा गुजरता है। चरित्र गणना को कम करने की मेरी योजना है। कोष्ठक में कथनों को रखने से हालांकि इसे पढ़ना आसान हो जाता है।
टिमस्मिथ-एर्डवुल्फ

3
सभी अलग-अलग केस वेरिएंट की जांच करने के बजाय .toLowerCase () का उपयोग करने के लिए बस बेहतर है।
एक्वाएलेक्स

1
var पसंद = प्रॉम्प्ट ("क्या आप रॉक, पेपर या कैंची का चयन करते हैं?")। toLowerCase (); if (user) }
एक्वालेक्स

1

कोई भी नियमित अभिव्यक्ति का उपयोग कर सकता है:

var thingToTest = "B";
if (/A|B/.test(thingToTest)) alert("Do something!")

यहाँ सामान्य रूप में नियमित अभिव्यक्ति का एक उदाहरण दिया गया है:

var myString = "This is my search subject"
if (/my/.test(myString)) alert("Do something here!")

यह चर "myString" के भीतर "मेरे" के लिए दिखेगा। आप "myString" वैरिएबल के स्थान पर सीधे स्ट्रिंग को स्थानापन्न कर सकते हैं।

एक अतिरिक्त बोनस के रूप में आप मामले को असंवेदनशील "i" और खोज के लिए वैश्विक "g" भी जोड़ सकते हैं।

var myString = "This is my search subject"
if (/my/ig.test(myString)) alert("Do something here");


दिलचस्प। प्रलेखन?
केन शार्प

0

OR(||)यदि स्थिति और संकेतन है तो ऑपरेटर का उपयोग करने के लिए एक से अधिक स्टेटमेंट स्टेटमेंट की आवश्यकता होती है ||

if(condition || condition){ 
   some stuff
}

1
आप पुराने प्रश्नों का उत्तर उसी उत्तर के साथ क्यों दे रहे हैं?
केन शार्प


0

यदि हम नियमित अभिव्यक्ति का उल्लेख करने जा रहे हैं, तो हम switchकथन का उल्लेख कर सकते हैं ।

var expr = 'Papayas';
switch (expr) {
  case 'Oranges':
    console.log('Oranges are $0.59 a pound.');
    break;
  case 'Mangoes':
  case 'Papayas': // Mangoes or papayas
    console.log('Mangoes and papayas are $2.79 a pound.');
    // expected output: "Mangoes and papayas are $2.79 a pound."
    break;
  default:
    console.log('Sorry, we are out of ' + expr + '.');
}


-1

महज प्रयोग करें ||

if (A || B) { your action here }

नोट: स्ट्रिंग और संख्या के साथ। यह अधिक जटिल है।

इसे समझने के लिए गहरी जाँच करें :


7
इस प्रश्न का उत्तर चार साल पहले दिया गया है। क्या आपका जवाब किसी मौजूदा जवाब में सुधार करता है?
Frambot

@JoeFrambach: नहीं। मैं केवल एक स्पष्ट जवाब देना चाहता हूं :)
हॉटंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.