对于此作业,对象'语言'是为你而创造的。作业是使用' for-in'循环写三种不同的方式来说'你好。'我想使用' if'声明检查该属性是否为'字符串'如果是这样,打印那个版本的'你好'到控制台。我被困住并且收到一条错误,说明你的语法有问题。"
var languages = {
english: "Hello!",
french: "Bonjour!",
notALanguage: 4,
spanish: "Hola!"
};
// print hello in the 3 different languages
for (var x in obj) {
var typeCheck = languages.x;
if {
(typeof typeCheck === "string") {
console.log(typeCheck;)
}
}
}
答案 0 :(得分:5)
您正在使用未定义的变量obj
进行循环。请改用已定义的languages
。
for (var x in languages) {
var typeCheck = x;
if {
(typeof typeCheck === "string") {
console.log(typeCheck;)
}
}
}
<强>更新强>
我注意到您的代码中存在很多错误。
您的if statement
这不是如何使用它,目前它是:
if {
(typeof typeCheck === "string") {
console.log(typeCheck;)
}
}
将其更改为:
if (typeof typeCheck === "string") {
console.log(typeCheck);
}
然后在console.log()
上结束半冒号,它应该在结尾)
之后。
所以来自:
console.log(typeCheck;)
收件人:
console.log(typeCheck);
将它们放在一起:
for (var x in languages) {
var typeCheck = x;
if (typeof typeCheck === "string") {
console.log(typeCheck);
}
}
答案 1 :(得分:2)
使用Robin建议的代码,我将其修改为以下最终解决方案。
for (var x in languages) {
var typeCheck = languages[x];
if (typeof typeCheck === "string") {
console.log(typeCheck);
}
}
答案 2 :(得分:1)
这里有一些问题:
for (var x in obj) {
- 这会在某个对象obj
上循环,在此上下文中未定义。你需要循环languages
。 if {
- if语句的格式为if (condition)
,而非您拥有的格式。 这是loops enumerable properties languages
的正确版本,并执行类型检查。
var languages = {
english: "Hello!",
french: "Bonjour!",
notALanguage: 4,
spanish: "Hola!"
};
Object.keys(languages).forEach(function(key) {
if (typeof languages[key] === "string") {
console.log(languages[key]);
}
});
&#13;