私はcodecademy.comの演習に取り組んでおり、for-inステートメントを使用してオブジェクトをループし、言語オブジェクトのプロパティの値が文字列であるかどうかを確認することで、さまざまな言語でhelloを出力します。typeof
値が文字列であるかどうかを確認するためのチェックが機能していません。私のループは私にこの結果を与えます
english
french
notALanguage
spanish
コード
var languages = {
english: "Hello!",
french: "Bonjour!",
notALanguage: 4,
spanish: "Hola!"
};
// print hello in the 3 different languages
for(var hello in languages){
var value = hello;
if (typeof value === "string"){
console.log(value);
}
}
これらは演習の手順です
あなたが本当にそれについて考えるならば、オブジェクトはそれほど異質ではありません!
typeof myVariableを使用すると、変数の型を把握できることを忘れないでください。今のところ関係しているタイプは、「オブジェクト」、「文字列」、および「数値」です。
for-inループを思い出してください。
for(var x in obj){executeSomething(); }
これにより、objのすべてのプロパティが1つずつ確認され、ループの実行ごとにプロパティ名がxに割り当てられます。
これら2つの概念に関する知識を組み合わせてみましょう。
言語オブジェクトを調べます。3つのプロパティは文字列ですが、1つは数値です。
for-inループを使用して、挨拶する3つの方法を出力します。ループでは、誤って数値を出力しないように、プロパティ値が文字列であるかどうかを確認する必要があります。