javascript元音改为大写,辅音改为小写

时间:2019-03-20 02:17:20

标签: javascript

我正在做的问题是:

  

编写一个JS程序,该程序需要用户输入1:一个句子(字符串)。该程序包含一个函数,该函数将字符串中的元音(a,e,i,o,u)转换为大写,并将辅音(非元音字符)转换为小写。输入示例:字符串=“学习编程并开始赚钱”。预期的输出=“ LEArn预防和标准EArnIng”。您的输出代码应采用console.log(“ Result is”,输出变量)格式。

我的代码是:

var sentence=prompt("Enter the sentence");

function convert(x){
 var a = x.split('');
 for( var i=0 ; i<a.length ; i++){
    if(a[i]=="a"){
        a[i] = a[i].toUpperCase();
    }
    else if(a[i]=="e"){
        a[i] = a[i].toUpperCase();
    }
    else if(a[i]=="i"){
        a[i] = a[i].toUpperCase();
    }
    else if(a[i]=="o"){
        a[i] = a[i].toUpperCase();
    }
    else if(a[i]=="u"){
        a[i] = a[i].toUpperCase();
    }
    else{
        a[i] = a[i].toLowerCase();
    }
  }
  var b = a.join('');
  return b;
 }

var output = convert(sentence);
console.log("Result is ", output);

它看起来不好,但是可以提供输出。但是,根据webapp,它不会通过所有测试用例。我在做什么错了?

3 个答案:

答案 0 :(得分:3)

您需要匹配大小写的元音,因此应该以不区分大小写的方式进行比较。

此替代方法使用正则表达式,该正则表达式匹配大小写的元音。

let convert = (str) => {
  return str.split('').reduce((a, c) => a + (/[aeiou]/i.test(c) ? c.toUpperCase() : c.toLowerCase()), "");
}

console.log("Result is", convert("Learn programming and start earning"))

答案 1 :(得分:2)

您的代码对于最初大写的元音失败。 例如: convert("HI")返回“ hi”

您应该先将输入转换为小写:

convert("HI".toLowerCase())返回正确的“ hI”

答案 2 :(得分:0)

   import {View, FlatList, Text, TouchableOpacity} from 'react-native';
     
const setSelectedIndex = (id) => {
        topData.map((item, index) => {
          if (index == id) {
            topData[index].selected = true;
          } else {
            topData[index].selected = false;
          }
        });
    
        setData([...topData]);
      };
    render() {
    
      return (
    
          <FlatList style={styles.list}
    
              data={this.state.data}
    
              renderItem={({item}) => (
    
                  <TouchableOpacity onPress={ () => this.actionOnRow(item.id)}>
    
                      <View>
                         <Text>ID: {item.id}</Text>
                         <Text>Title: {item.title}</Text>
                      </View>
    
                 </TouchableOpacity>
    
             )}
          /> 
       );
    }
    
    actionOnRow(item) {
       console.log('Selected Item :',item , item + item.id);
    }