一定是我在这里错过了一些大事。由于某些原因,.charAt(i)在这段代码中返回undefined。
let images = {};
let alphabet = 'abcdefghijklmnopqrstuvwxyz';
let imageArray = ['a', 'b', 'c', 'd'];
for (let i = 0; i < imageArray.length; i++){
let letter = alphabet.charAt[i]; // returns undefined
images[letter] = imageArray[i];
}
console.log(images); // {undefined: "d"}
答案 0 :(得分:4)
您需要调用String#charAt
alphabet.charAt(i);
// ^ ^
代替带有括号的property accessor。
let images = {};
let alphabet = 'abcdefghijklmnopqrstuvwxyz';
let imageArray = ['a', 'b', 'c', 'd'];
for (let i = 0; i < imageArray.length; i++) {
let letter = alphabet.charAt(i); // returns undefined
images[letter] = imageArray[i];
}
console.log(images); // {undefined: "d"}
答案 1 :(得分:2)
您的语法有误!当然,您想调用alphabet.charAt
函数。但是您正在执行charAt[i]
而不是charAt(i)
。方括号是用于通过变量(i
访问数组/对象的属性的语法,因此最终得到函数的属性 charAt
-例如charAt[0]
。但这并不存在,因此它的计算结果仅为undefined
。
因此,要解决此问题,只需将方括号(charAt[i]
)替换为括号(charAt(i)
)。您总是使用括号而不是方括号来调用函数。
答案 2 :(得分:1)
您必须像调用.charAt()
这样的函数而不是.charAt(i)
来调用.charAt[i]
答案 3 :(得分:0)
在这里!,alphabet.charAt()是函数,而不是数组。将[]更改为(),然后开始工作。
let images = {};
let alphabet = 'abcdefghijklmnopqrstuvwxyz';
let imageArray = ['a', 'b', 'c', 'd'];
for (let i = 0; i < imageArray.length; i++){
let letter = alphabet.charAt(i); // returns undefined
images[letter] = imageArray[i];
}
console.log(images); // {undefined: "d"}