//1. input words beginning and ending with a vowel are preserved in lowercase
//2. input words beginning with vowels and ending in a non vowel are translated to uppercase
//3. input words beginning with a non vowel and ending with a vowel are translated to a capitalized word (only first letter is uppercase)
//4. when printing the words, only two vowels are preserved per word (the first two)

//Output "i dont know Dude i AM not typing ALL OF this Nonsens text"
var str = "i dont know dude i am not typing all of this nonsense text";
console.log(str);
var res = str.split(" ");
console.log(res);

for(let i = 0; i<res.length;i++){
    //checking words after spliting into single words

    if((res[i].split("") && (res[0] ==== 'a'|| 'e' || 'o' || 'u' || 'i' || 'y') && (/* last charachter to check */ ))
}

मैं शुरुआती जावास्क्रिप्ट डेवलपर हूं और मुझे अपने अभ्यास में कुछ कठिनाइयां आ रही हैं, मेरे पास 4 से ऊपर की शर्तें हैं, पहले मैंने सरणी को एक शब्दों में विभाजित किया, फिर मुझे एकल वर्णों में विभाजित होने की उम्मीद थी, इसलिए रेस [0] मेरा पहला आइटम होगा। मुझे नहीं पता कि यह काम करेगा या नहीं, लेकिन कम से कम मुझे कोशिश करने की जरूरत है। किसी भी मदद की बहुत सराहना की जाएगी, भले ही वह नियमित अभिव्यक्तियों के साथ हो। शुक्रिया

-2
user6311492 28 मार्च 2018, 20:26

2 जवाब

 res[0] ==== 'a'|| 'e'

यह काम नहीं करेगा। आपको क्या करने की जरूरत है:

 res[0] ==== 'a'|| res[0] === 'e'

हालांकि यह काफी जटिल है, बस ऐसा कर सकता है:

 "aeiou".includes(res[0])

ओह और res[0] पहला शब्द है, पहला वर्ण नहीं, वह res[i][0] होगा। और आप res[i][res[i].length - 1] के साथ अंतिम प्राप्त कर सकते हैं। और मुझे अभी भी वह नहीं मिला जो आप res[i].split("") && के साथ करने की कोशिश कर रहे हैं ... बस उसे छोड़ दें।

0
Jonas Wilms 28 मार्च 2018, 17:36

आप Array.prototype के reduce का उपयोग कर सकते हैं।

var str = "i dont know dude i am not typing all of this nonsense text";
console.log(str);
var res = str.split(" ");

var y=res.reduce((a,e) => {
    if("aeiou".includes(e[0])){  //condition 1 and 2
        return a + ("aeiou".includes(e[e.length-1]) ? getWord(e).toLowerCase() : getWord(e).toUpperCase()) + " ";
    }
    else{                       //condition 3
        return a + ("aeiou".includes(e[e.length-1]) ? e[0].toUpperCase() + getWord(e.substr(1)).toLowerCase() : e) + " ";
    }
},"");

function getWord(x){            //condition 4
    var count = 0;
    for(var i = 0; i < x.length; i++){
        count += "aeiou".includes(x[i]) ? 1 : 0;
        if(count === 3)
            return x.substr(0,i);
    }
    return x;
}

console.log(y);
1
yajiv 28 मार्च 2018, 18:24