如何检查一个值是否在 JavaScript 中使用 charAt
How to check whether a value using charAt in JavaScript
我对 JavaScript 很陌生。目前,我正在做一个程序,我想将文本翻译成 "rovarspracket"。即)将每个辅音加倍并在其间放置一个 "o"。例如: translate("this is fun") 应该 return 字符串 "tothohisos isos fofunon" 。我无法获得所需的结果。帮助我,我会学习。
这是我尝试过的以下代码。
<button type="button" onclick="translate('de')">try it</button>
<h2 id="ad" />
<script>
function translate(t)
{//alert(t.length);exit;
var l=t.length;
var v=["a","e","i","o","u",""];
var b="";
for(var i=0;i<l;i++)
{ //alert(i);exit;
var c=t.charAt[i];alert(c);
if(v.indexOf(c)!=-1)
{
b=(b+(c));
}
else
{
b=(b+(c="o"+c));
}
}
document.getElementById("ad").innerHTML=b;
}
</script>
我冒昧地为您简化了功能:
var str = "this is fun",
arr = str.split(''); // Split the string into an array of separate characters.
mapped = arr.map(function(c){
if(["a","e","i","o","u"," "].indexOf(c) == -1) // If the character is a consonant
return c + 'o' + c; // replace it,
return c; // otherwise, just keep the current character.
}),
result = mapped.join(''); // Rebuild the string
console.log(result);
或者,更紧凑一点:
var str = "this is fun",
result = str.split('').map(function(c){
return (["a","e","i","o","u"," "].indexOf(c) == -1) ? (c + 'o' + c) : c;
}).join('');
console.log(result);
这是你可以做的事情。
function translate(input) {
var outputString = [];
var vowels = ['a', 'e', 'i', 'o', 'u'];
input.split("").forEach(function(charValue) {
if (vowels.includes(charValue) || charValue == ' ') {
outputString.push(charValue);
} else {
outputString.push(charValue + 'o' + charValue);
}
});
document.querySelector("#output").innerHTML = outputString.join("");
}
div {
padding: 10px;
}
<button type="button" onclick="window.translate('this is fun')">try it</button>
<div id="output"></div>
如果您专门寻找带有 charAt 函数的解决方案,这里就是。
function translate(input) {
var outputString = [],
vowels = ['a', 'e', 'i', 'o', 'u'];
for (var idx = 0; idx < input.length; idx++) {
var currentChar = input.charAt(idx);
if (vowels.indexOf(currentChar) === -1 && currentChar != " ") {
outputString.push(currentChar + "o" + currentChar);
} else {
outputString.push(currentChar);
}
}
console.log(outputString.join(""));
}
translate("this is fun");
我对 JavaScript 很陌生。目前,我正在做一个程序,我想将文本翻译成 "rovarspracket"。即)将每个辅音加倍并在其间放置一个 "o"。例如: translate("this is fun") 应该 return 字符串 "tothohisos isos fofunon" 。我无法获得所需的结果。帮助我,我会学习。
这是我尝试过的以下代码。
<button type="button" onclick="translate('de')">try it</button>
<h2 id="ad" />
<script>
function translate(t)
{//alert(t.length);exit;
var l=t.length;
var v=["a","e","i","o","u",""];
var b="";
for(var i=0;i<l;i++)
{ //alert(i);exit;
var c=t.charAt[i];alert(c);
if(v.indexOf(c)!=-1)
{
b=(b+(c));
}
else
{
b=(b+(c="o"+c));
}
}
document.getElementById("ad").innerHTML=b;
}
</script>
我冒昧地为您简化了功能:
var str = "this is fun",
arr = str.split(''); // Split the string into an array of separate characters.
mapped = arr.map(function(c){
if(["a","e","i","o","u"," "].indexOf(c) == -1) // If the character is a consonant
return c + 'o' + c; // replace it,
return c; // otherwise, just keep the current character.
}),
result = mapped.join(''); // Rebuild the string
console.log(result);
或者,更紧凑一点:
var str = "this is fun",
result = str.split('').map(function(c){
return (["a","e","i","o","u"," "].indexOf(c) == -1) ? (c + 'o' + c) : c;
}).join('');
console.log(result);
这是你可以做的事情。
function translate(input) {
var outputString = [];
var vowels = ['a', 'e', 'i', 'o', 'u'];
input.split("").forEach(function(charValue) {
if (vowels.includes(charValue) || charValue == ' ') {
outputString.push(charValue);
} else {
outputString.push(charValue + 'o' + charValue);
}
});
document.querySelector("#output").innerHTML = outputString.join("");
}
div {
padding: 10px;
}
<button type="button" onclick="window.translate('this is fun')">try it</button>
<div id="output"></div>
如果您专门寻找带有 charAt 函数的解决方案,这里就是。
function translate(input) {
var outputString = [],
vowels = ['a', 'e', 'i', 'o', 'u'];
for (var idx = 0; idx < input.length; idx++) {
var currentChar = input.charAt(idx);
if (vowels.indexOf(currentChar) === -1 && currentChar != " ") {
outputString.push(currentChar + "o" + currentChar);
} else {
outputString.push(currentChar);
}
}
console.log(outputString.join(""));
}
translate("this is fun");