問題タブ [for-in-loop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3948 参照

javascript - JavaScript の「for in」ループの問題

Web サイトの特定のメニューの基礎となるオブジェクトの配列があります。JavaScript を使用してビルドされます。

そこで、インデックスと長さを処理する必要がないように、「for in ループ」を使用することにしました。メニューがビルドされると、メニューに 7 つの項目が表示されることを期待しています ( と を使用<ul>します<li>)。

デバッグ中に誤って に背景色を追加してしまった<li>とき、すべての地獄が解き放たれました。<li>7 番目のメニューが表示された後、少なくとも 30 個が空であることがわかりました<li>

なぜこうなった?

編集:

これがループです。ループは、後で解析する別の関数の別のオブジェクトを作成します。(前の配列によって提供されるプロパティを持つ<li>with を作成します。) この "for-in" ループを通常の for ループまたは while ループに変更すると、正常に動作するため、他の関数が正常に動作することがわかっています。<a>

0 投票する
2 に答える
444 参照

javascript - for-inループを使用してJavaScriptでスタイルを適用する

したがって、要素の意図されたスタイルを記述するキーと値のペアでいっぱいのオブジェクトがあり、次のようにオブジェクトをループすることによって、そのスタイルを要素に適用しようとしています。

それでも、要素にはスタイルがありません。これは非常に単純に思えるので、何がうまくいかないのか理解できないので、信じられないほど明白な何かが欠けていると思います。あなたが提供できるどんな助けにも感謝します。

0 投票する
2 に答える
165 参照

javascript - オブジェクトをループして、キー名($ key => $ value)を取得することは可能ですか?

PHPでは、連想配列をループして、次のようにキーと値の両方の値を取得できます。

これをjavascriptで実行できる方法はありますか?

0 投票する
1 に答える
52649 参照

objective-c - For... in ステートメント Objective-C

私はObjective-Cを勉強していて、この「for...in」ステートメントに出くわしました。私はそれを検索しましたが、まだどのように機能するのかわかりません。このステートメントがどのように機能するかを初心者向けに説明してもらえますか?

0 投票する
3 に答える
1333 参照

javascript - String.prototypeを反復処理します

for inループは、オブジェクト、プロトタイプ、およびコレクションのプロパティを反復処理するのに役立つことを認識しています。

実際には、繰り返し処理する必要がString.prototypeありconsole.log(String.prototype)ます。完全なプロトタイプが表示されますが、

プロトタイプの要素の名前を表示するために、空であるかのように何も表示されません。

JavaScriptエンジンは基本的なプロトタイプメソッドを隠しますか、それとも私は何か間違ったことをしていますか?

0 投票する
1 に答える
266 参照

objective-c - NSMutableDictionaryを介して列挙する-ループ内からオブジェクトプロパティにアクセスすることはできません

analyzedPxDictionary一連のPixelオブジェクト(作成したカスタムクラス)を含むNSMutableDictionaryがあります。特に、Pixelオブジェクトには。と呼ばれるNSArrayプロパティが含まれていますrgb。その配列には常に3つのNSNumberオブジェクトが含まれ、整数値はピクセルのrgb値に対応します。

私は現在、analyzedPxDictionary高速列挙を使用して列挙しようとしています。ただし、ループ内からPixelオブジェクトのプロパティにアクセスできないようです。rgbドット構文を使用してアクセスできるように、合成プロパティであると宣言しました。しかし、ループ内からそうしようとすると、プログラムがクラッシュし、次のようなエラーが発生します。

'-[NSCFString rgb]: unrecognized selector sent to instance 0xa90bb50'

そのエラーを生成するコードの例を次に示します。

printfを調べるために、その線にブレークポイントを設定してみましたpx。そのプロパティがNSArrayのインスタンスとして正しく記述されているrgb場合、1つとしてリストされていますが、オブジェクトが含まれていないようです。

rgb正しく初期化していると思います。説明するために、次のコードを検討してください。

これにより、正しい値がコンソールに正常に出力されます。

では、なぜループrgb内からプロパティにアクセスできないのですか?forin

0 投票する
2 に答える
17477 参照

javascript - javascript "for (x in y)" ステートメント

「x」の代わりに想定しなければならないことを知りたいです。

0 投票する
5 に答える
288 参照

javascript - for ... inループはJavaScriptで役立ちますか?

私はJavaScriptを初めて使用し、現在、いわゆるfor... inループについて学習しています。

JavaScriptでコーディングするときに実際にこれらのループを使用しますか?

他のすべてのタイプのループがどのように役立つかはわかりますが、これはわかりません。

誰かがこれに光を当てて、可能であれば実際の例を含めてください。

0 投票する
2 に答える
4268 参照

javascript - 「オブジェクトはこのプロパティまたはメソッドIEをサポートしていません」JavascriptのエラーはおそらくhasOwnPropertyを使用したことによるものですか?

何らかの理由でIE8とIE7でこのエラーが発生します。オブジェクト内のすべてのキーをループしていますが、次のように表示され続けますObject doesn't support this property or method

ブロック全体は以下のとおりです。

誰かがこれをDougCrockfordのjslintボードに投稿し、彼は次のように応答しました。

for(key in object){if(Object.prototype.hasOwnProperty.call(object、key)){...}}

hasOwnPropertyはメソッドではなく演算子である必要があります。これは、メソッドであるため、この種の問題が発生しやすいためです。しかし、それはそれが何であるかなので、あなたはそれを回避しなければなりません。

Chrome、FF、Safari、Operaなどで通常どおり正常に動作します。回避策について何かアイデアはありますか?