Javascript 如何访问此对象?它不断返回一个未定义的字符串

Javascript 如何访问此对象?它不断返回一个未定义的字符串,javascript,Javascript,在这个kata中,你需要给定一个字符串,用它在字母表中的位置替换每个字母 如果文本中有任何内容不是字母,请忽略它,不要返回 “a”=1,“b”=2等 范例 alphabet_position("The sunset sets at twelve o' clock.") 应返回“20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 23 5 12 22 5 15 3 12 3 11”(作为字符串) 如何访问此对象?它不断返回一个未定义的字符串 功能字母位置(文本){

在这个kata中,你需要给定一个字符串,用它在字母表中的位置替换每个字母

如果文本中有任何内容不是字母,请忽略它,不要返回

“a”=1,“b”=2等

范例

alphabet_position("The sunset sets at twelve o' clock.")
应返回
“20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 23 5 12 22 5 15 3 12 3 11”
(作为字符串)

如何访问此对象?它不断返回一个未定义的字符串

功能字母位置(文本){
变量字母={
答:1,,
b:2,
c:3,
d:4,
e:5,
f:6,
g:7,
h:8,
i:9,
j:10,
k:11,
l:12,
m:13,
n:14,
o:15,
p:16,
问:17,
r:18,
s:19,
t:20,
u:21,
v:22,
w:23,
x:24,
y:25,
z:26
}
var数=0;
var字符串=”;
var字母=”;
对于(i=0;i尝试以下操作

  • alphabet.letter
    应为
    alphabet[letter.toLowerCase()]
    -用于忽略大小写
  • 对于空格和其他字符,请选中
    if(number)
功能字母位置(文本){
var字母表={a:1,b:2,c:3,d:4,e:5,f:6,g:7,h:8,i:9,j:10,k:11,l:12,m:13,n:14,o:15,p:16,q:17,r:18,s:19,t:20,u:21,v:22,w:23,x:24,y:25,z:26};
var数=0;
var字符串=”;
var字母=”;

对于(i=0;i而言,您的代码中存在一些错误。请按照以下步骤解决此问题

  • 使用括号表示法动态访问属性
  • 使用
    toLowerCase()
    方法也可以转换
    大写字母
  • 处理特殊的空格,因为没有转换规则
功能字母位置(文本){
变量字母表={
答:1,,
b:2,
c:3,
d:4,
e:5,
f:6,
g:7,
h:8,
i:9,
j:10,
k:11,
l:12,
m:13,
n:14,
o:15,
p:16,
问:17,
r:18,
s:19,
t:20,
u:21,
v:22,
w:23,
x:24,
y:25,
z:26
}
var数=0;
var字符串=”;
var字母=”;
对于(i=0;i如果你认为每个字母的索引是它的ASCII/UTF16代码减去97(字母“A”的ASCII代码)加上1(因为你的字母从1开始而不是0),那么你可以这样解决:

功能字母位置(文本){
var str=“”;
对于(i=0;i如果(code>=97&&code使用ASCII码,您的代码将不需要字母表数组

var str=“日落时间定在十二点。”;
函数图表转换(str){
var结果=”;
str=str.toLowerCase();
对于(变量i=0;i0&&ascii<26)
结果+=ascii+“”;
}
返回结果;
}

console.log(chartoasciconversion(str));
您的代码有问题:在变量中存储对象属性名称时,您应该使用
[]
符号来访问属性值。在您的示例中,您有
字母表.letter
,它应该是
字母表[letter]

功能字母位置(文本){
变量字母={
答:1,,
b:2,
c:3,
d:4,
e:5,
f:6,
g:7,
h:8,
i:9,
j:10,
k:11,
l:12,
m:13,
n:14,
o:15,
p:16,
问:17,
r:18,
s:19,
t:20,
u:21,
v:22,
w:23,
x:24,
y:25,
z:26
}
var数=0;
var字符串=”;
var字母=”;
对于(i=0;iconsole.log(res,res==“20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 23 5 12 22 5 15 3 12 15 3 11”);
数字=字母表[字母]
您所拥有的是在文字键上查找值
“字母”< /代码>,它不存在——因此<代码>未定义您可能还想考虑当您在字符串中有大写字母时会发生什么(提示:转换为小写)