2016-10-13 9 views
6

私は著書「WebデザイナーのためのJavaScriptを」読んでいると私は、この例に来ている:.. forループ - なぜそれは機能するのですか?

var fullName = { 
    "first": "John", 
    "last": "Smith" 
}; 
for (var name in fullName) { 
    console.log(name + ": " + fullName[name]); 
} 

出力は次のようになります。

"first: John" 
"last: Smith" 

私は何を得ることはありませんがあります。ここでやります私はプログラムに "first"と "last"の文字列を取得するよう指示します。つまり、オブジェクト "fullName"を循環させると、 "名前"が "最初"と "最後"にどのように関連しているのか見当たりません。私はこれがはっきりしていることを望む お手伝いできますか?どうもありがとう!

+1

' for'ループ反復するようになりますと、あなたはその後、アクセスのように( 'fullName [name]'のような)対応する値 – UnholySheep

+0

変数 'name'の名前を' objectProperty'や 'arrayKey'のように変更すると、もっと明白になります –

答えて

12

for..inは、オブジェクトのキーを反復します。オブジェクト値by name using bracketsにアクセスできます。

var obj = { 
 
    a: 1, 
 
    b: 2, 
 
    c: 3 
 
}; 
 

 
for (var key in obj) { 
 
    console.log('Key:', key); 
 
    console.log('obj[key] == obj["' + key + '"] == obj.' + key); 
 
    console.log('obj.' + key + ' == ' + obj[key]); 
 
}

6

これはかなり簡単に学び、理解することができます。オブジェクトのすべてのプロパティをループしていますfullName

:各プロパティについて、あなたはそれを name

の一時的な名前/別名を与えているので、あなたがそうのような名前anythingによって各プロパティを参照しますforループの本体で、その後for (var anything in fullName)に変更し、可能性

for (var anything in fullName) { 

    // anything is an alias for the current property your on of the object you're looping through 
    console.log(anything + ": " + fullName[anything]); 

} 
3

for..inループは、オブジェクトのキーを反復処理します。これを配列で使用すると、ほとんどのブラウザエンジンは配列をオブジェクトの背後のオブジェクトに変換し(辞書モードで詳細を読む)、キーを反復処理します。

あなたは

var fullName = { 
 
    "first": "John", 
 
    "last": "Smith" 
 
}; 
 
console.log(Object.keys(fullName));

そして、本質的にこの呼び出しの結果は、その後繰り返されるを使用してキーを表示することができます。 for..inを使用しても、キー値のペアの順序は保証されません。

3

は、オブジェクトのキーを表す

最初と最後のオブジェクトで両方のキーです。オブジェクト内の値にアクセスするために使用することができます。

ループの最初の実行では、(NAME` `に格納されます)あなたのオブジェクトのキーに対するこの

for("first" in fullName) { 
console.log("first" + ": " + fullName["first"] //John); 
} 
関連する問題