我正在做的问题是:
编写一个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,它不会通过所有测试用例。我在做什么错了?
答案 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);
}