【发布时间】:2020-08-29 13:51:48
【问题描述】:
使用这个简单的函数来遍历一个数组并显示元素、索引和类型,我试图为以元音开头的单词添加一个“n”到单词 a。例如。一个数字,一个对象。
但是添加 n 的变量“n”在最终的 console.log 中是未定义的
我相信这是一个范围错误,但对 javascript 不熟悉,我正在寻求帮助
const someArr = [
'max',
34,
true,
{
name: 'sandra',
student: true
},
['javascript', 'mongodb', 'react']
];
////////////////
function arrayTypeFinder(array) {
someArr.forEach((elem, index) => {
let type = typeof elem;
if (type.charAt(0) === "a" || "e" || "i" || "o" || "u") {
let n = "n"
} else {
let n = ""
}
console.log(`element ${elem} at index number: ${index} is a${n} ${type}`)
})
}
///////////
arrayTypeFinder(someArr) //=> n is not defined
【问题讨论】:
-
N 不是全局定义的,它在本地定义为
if和else语句 -
您的代码的另一个问题是您需要检查第一个字符是否为“a”,或者(||)第一个字符是否为“e”等...所以您需要更改你的条件是
type.charAt(0) === "a" || type.charAt(0) === "e" || ... -
if ("aeiou".includes(type.charAt(0)) { // add n }
标签: javascript foreach undefined typeof