[解決済み] ( for... in ) と ( for... of ) の文の違いは何ですか?
2022-03-18 21:58:51
質問
というのは知っています。
for... in
ループ(キーを反復する)については聞いたことがあります。
for... of
を使うのは初めてです(値を反復します)。
について混乱しています。
for... of
ループを使用します。
var arr = [3, 5, 7];
arr.foo = "hello";
for (var i in arr) {
console.log(i); // logs "0", "1", "2", "foo"
}
for (var i of arr) {
console.log(i); // logs "3", "5", "7"
// it doesn't log "3", "5", "7", "hello"
}
と理解しています。
for... of
はプロパティ値に対して反復処理を行います。では、なぜ
"3", "5", "7", "hello"
ではなく
"3", "5", "7"
?
とは異なり
for... in
ループは、各キーに対して反復処理を行います (
"0", "1", "2", "foo"
を繰り返し、さらに
foo
キーは
for... of
はしません。
の値に対して反復処理を行います。
foo
プロパティ、つまり
"hello"
. なぜそのようなことになるのでしょうか?
ここで私はコンソール
for... of
をループさせます。次のようなログが出力されるはずです。
"3", "5", "7","hello"
が、ログに残るのは
"3", "5", "7"
. なぜ?
解決方法は?
for in
オブジェクトの列挙可能なプロパティ名に対してループを実行します。
for of
(ES6 の新機能) は
オブジェクト固有の
イテレータ
で生成された値をループしています。
あなたの例では 配列イテレータ は、配列内のすべての値を取得します (インデックス以外のプロパティは無視します)。
関連
-
jQueryのコピーオブジェクトの説明
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] Bowerとnpmの違いは何ですか?
-
[解決済み] JavaScriptのnullとundefinedの違いは何ですか?
-
[解決済み] ++iとi++の違いは何ですか?
-
[解決済み】JavaScript版sleep()とは?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JavaScriptのクロージャの説明
-
vueはopenlayersを使用してスカイマップとガオードマップをロードする
-
vueが定義するプライベートフィルタと基本的な使い方
-
vueにおけるfilterの適用シーンについて解説します。
-
vueのプロジェクトでモックを使用する方法を知っていますか?
-
Vueの「データを聴く」原則を解説
-
[解決済み] 配列の結合時に未定義のプロパティ 'push' を読み込むことができない
-
[解決済み】 Uncaught TypeError : undefined のプロパティ 'replace' を読み取れない In Grid
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法
-
JavaScriptのgetElementById()メソッド入門