我正在尝试将for-loop和if语句只打印出字符串数据。
var languages = { 英语:“你好!”, 法语:“Bonjour!”, notalangage:4, 西班牙语:“Hola!” };
// print hello in the 3 different languages
for (var x in languages) {
if (typeof x === "string") {
console.log(languages[x])
}
};
答案 0 :(得分:0)
我相信你要做的是:
for (var x in languages) {
if (typeof languages[x] === "string") {
console.log(languages[x]);
}
}
您目前编码的方式将打印出所有"键"在对象中,因为键都是"字符串"。
答案 1 :(得分:0)
在对象字面意义上,英语,法语,非语言,西班牙语是属性。 JavaScript中的属性是字符串,但在对象文字中定义属性名称时,可以省略字符串分隔符。
使用for ... in循环浏览属性名称时,属性名称为字符串,如
for (x in languages) {
alert(typeof x);
//-> "string"
}
你需要这样
var languages = { english: "Hello!", french: "Bonjour!", notALanguage: 4, spanish: "Hola!" };
// print hello in the 3 different languages
for (var x in languages) {
//console.log(typeof x); //it will print 4 times because all keys are string
if (typeof languages[x] === "string") {
console.log(languages[x])
}
}
答案 2 :(得分:0)
谢谢我实际上找到了与用户相同的问题:Leahcim发布了帖子用户的正确答案:Some Guy JavaScript: using typeof to check if string
for (var hello in languages) {
var value= languages[hello]
if (typeof value === "string") {
console.log(value)
}
};