function hey(str) {
    for (let char of str){
        if (str.slice(-1) !== "?" && str === str.toUpperCase() && str !== " "){
            return 'Whoa, chill out!';
        }
        else if (str.slice(-1) === "?" && str === str.toUpperCase()){
            return "Calm down, I know what I'm doing!";
        }
        else if(str.slice(-1) === "?" && str !== str.toUpperCase()){
            return "Sure.";
        }
        else if (str === " " || str === undefined){
            return "Fine. Be that way!";
        }
        else {
          return 'Whatever.';
        }
    }
}

hey('');

संपर्क

बॉब बॉब एक ​​अभावग्रस्त किशोर है। बातचीत में उनके जवाब बहुत सीमित होते हैं।

बॉब ने जवाब दिया 'ज़रूर।' अगर आप उससे एक सवाल पूछते हैं।

वह जवाब देता है 'वाह, शांत हो जाओ!' यदि आप उस पर चिल्लाते हैं।

वह जवाब देता है 'शांत हो जाओ, मुझे पता है कि मैं क्या कर रहा हूँ!' यदि आप उस पर कोई सवाल चिल्लाते हैं।

वह कहता है 'ठीक है। उस रास्ते चलें!' यदि आप वास्तव में बिना कुछ कहे उसे संबोधित करते हैं।

वह जवाब देता है 'जो कुछ भी।' किसी और चीज को।

1
Perry Chan 16 मई 2018, 11:09

2 जवाब

सबसे बढ़िया उत्तर

आप स्ट्रिंग या खाली स्ट्रिंग लेकर स्ट्रिंग को ट्रिम कर सकते हैं और तार्किक समूहों के साथ तुलना कर सकते हैं।

एक if खंड में एक return कथन का उपयोग करके, आप else को छोड़ सकते हैं, क्योंकि यदि true, तो फ़ंक्शन return के साथ समाप्त हो जाता है। अगली जांच के लिए, else के बिना एक if पर्याप्त है। इस विधि को जल्दी निकास कहा जाता है।

पढ़ने के लिए और अधिक: क्या मुझे चाहिए किसी फ़ंक्शन से जल्दी लौटना या if कथन का उपयोग करना?

function hey(str) {
    str = (str || '').trim();
    if (str === "") {
        return "Fine. Be that way!";
    }
    if (str.slice(-1) === "?") {
        return str === str.toUpperCase()
            ? "Calm down, I know what I'm doing!"
            : "Sure.";
    }
    return str === str.toUpperCase()
        ? 'Whoa, chill out!'
        : 'Whatever.';
}

console.log(hey(''));
console.log(hey('BOA!'));
console.log(hey('BOA?'));
console.log(hey('ok!'));
console.log(hey('ok?'));
0
Nina Scholz 16 मई 2018, 11:34

वे आपके कोड में दो गलतियाँ हैं।

  • for लूप अनावश्यक है।
  • बॉब को जो कहा गया था वह एक खाली स्ट्रिंग था या नहीं, इसकी तुलना करने के लिए आपको बेकार रिक्त स्थान को हटाने के लिए trim फ़ंक्शन का उपयोग करना होगा।
function hey(str) {
    const trimmedStr = (str || '').trim();
  
    if (trimmedStr === '') {
        return "Fine. Be that way!";
    }

    if (trimmedStr.slice(-1) === "?") {
      return trimmedStr === trimmedStr.toUpperCase()
        ? "Calm down, I know what I'm doing!"
        : "Sure.";
    }
     
    return trimmedStr === trimmedStr.toUpperCase()
      ? 'Whoa, chill out!'
      : 'Whatever.';
}

console.log(hey(' '));
console.log(hey('FOO?'));
console.log(hey('Foo?'));
console.log(hey('FOO'));
console.log(hey('Foo'));
1
Erazihel 16 मई 2018, 12:25