Mil*_*los 7 javascript arrays string
当我开始时,这对我来说看起来相当简单,但出于某种原因,每当我尝试在代码服务上运行结果时,我都会得到一个空数组.我希望你能帮助我找出问题所在.
function alphabetPosition(text) {
text.split(' ').join('');
var chari = "";
var arr = [];
var alphabet = "abcdefghijklmnopqrstuvwxyz".split('');
for(var i = 0; i < text.len; i++){
chari = text.charAt(i).toLowerCase();
if(alphabet.indexOf(chari) > -1){
arr.push(alphabet.indexOf(chari));
}
}
return arr;
}
console.log(alphabetPosition("Hello World"));Run Code Online (Sandbox Code Playgroud)
我的想法是从参数中获取文本然后去掉空格.我为我的空数组创建了一个变量,然后创建一个字母字符串,我可以稍后搜索.在for循环中,我将每个字符设置为小写,如果在字母字符串中找到该字符,则其位置将被推入数组(arr).我很感激你的时间.
你需要String#length财产
text.length
Run Code Online (Sandbox Code Playgroud)
而不是text.len.
text.length
Run Code Online (Sandbox Code Playgroud)
ES6 的解决方案
function alphabetPosition(text) {
var chari,
arr = [],
alphabet = "abcdefghijklmnopqrstuvwxyz",
i;
for (var i = 0; i < text.length; i++){
chari = text[i].toLowerCase();
if (alphabet.indexOf(chari) !== -1){
arr.push(alphabet.indexOf(chari));
}
}
return arr;
}
console.log(alphabetPosition("Hello World!!1"));Run Code Online (Sandbox Code Playgroud)
第一:删除空格
第二:将每个字符与其字母顺序映射
第三:用字符串测试新年快乐
var alphabet = "abcdefghijklmnopqrstuvwxyz".split('');
var alphabetPosition = text =>
text.split('').map(x => alphabet.indexOf(x) + 1);
console.log(alphabetPosition("happy new year"));Run Code Online (Sandbox Code Playgroud)
在卡塔适用本规范.试试这个:
function alphabetPosition(text) {
var result = "";
for (var i = 0; i < text.length; i++) {
var code = text.toUpperCase().charCodeAt(i)
if (code > 64 && code < 91) result += (code - 64) + " ";
}
return result.slice(0, result.length - 1);
}
console.log(alphabetPosition("The sunset sets at twelve o' clock."));Run Code Online (Sandbox Code Playgroud)