問題タブ [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.
javascript - javascriptのfor..inとforeach..inの違いは何ですか?
javascriptのfor..inステートメントとforeach..inステートメントの違いは何ですか?私が知らない微妙な違いはありますか、それとも同じで、ブラウザごとに異なる名前が付いていますか?
javascript - MooToolsを含むfor..inを使用したJavascript配列の反復
MooToolsで配列を反復処理していますが、短縮for..in
ループを使用して配列を反復処理すると、追加の項目が表示されます。通常のfor
ループを使用すると正常に動作します。これはMooToolsがグローバル名前空間を汚染する問題ですか、それともここで何か間違ったことをしていますか?
createTabs()
配列を反復処理し、配列内の値ごとにタブを作成する関数があります。
これは次の出力ですconsole.log(i)
:
最初の2つのインデックスは理解していますが、残りはどこから来ているのでしょうか。
編集:ChetanとkPrimeのクイックアンサーに感謝します。それは理にかなっており、Array.each
MooToolsによる追加は反復するためのはるかにクリーンな方法です!
今はずっと良く見えます:
javascript - Javascript for..in と jQuery の $.for() が IE の XMLHttpRequest で機能しない
更新: この問題は、最新バージョン (1.4.2) ではなく、古いバージョンの jQuery (1.3.2) を使用している場合にのみ発生します。
元の質問:
奇妙な動作を見つけたので、回避策があるかどうか疑問に思っています。JavaScript の「for」ループを使用して、オブジェクトのプロパティ名を列挙できます。IE では一部のオブジェクト、特に XMLHttpRequest では機能しないことがわかりました。次のコードを検討してください。Firefox の XMLHttpRequest のすべてのプロパティに対してアラート ボックスが開きます。ただし、IE ではプロパティが見つかりません。デバッガーをステップスルーすると、オブジェクトには確実にプロパティがあります。jQuery の $.for() 関数を使用すると、同じ結果が得られます。
delphi - Delphiで、Excel相互運用ワークシートコレクションのforループを使用する場合の「GetEnumeratorが存在しません」エラーについてはどうすればよいですか?
Excelファイルの各ワークシートをループしていくつかのセルをフォーマットするDelphiプログラムを作成しようとしています。ただし、Workbook.Worksheetsコレクションでfor-inループを使用しようとすると、エラーが発生します。エラーは具体的には次のとおりです。
[DCCエラー]Office.pas(36):「Sheets」に「GetEnumerator」のメンバーが含まれていないか、アクセスできないため、E2431for-inステートメントはコレクションタイプ「Sheets」を操作できません
これが発生するコード行は次のとおりです。
ワークシートとワークブックの定義は次のとおりです。
このコードをC#からDelphiに移植しており、そこで動作します。このGetEnumeratorエラーが発生する理由を誰かが知っていますか?Office 2007ExcelInteropファイルとEmbarcadero®Delphi®2010バージョン14.0.3593.25826を使用しています。
javascript - Javascript の "for in" コンストラクトは長さプロパティを反復する必要がありますか?
ブックマークレットを作成していますが、IE8 で奇妙な動作に遭遇しました。問題の原因となっているコードは次のとおりです。
最初に警告されるのは「長さ、n」です。これは chrome では当てはまりません: IE8 だけです。
興味深いことに、コードがコンソール/アドレス バーに配置されるか、ページ自体に配置されるかによって、動作が異なるようです。
これは標準的な動作ですか?
編集:
私がそれを実行しているWebサイトにも当てはまりません。IEでキーが設定されgetElementsByTagName
た配列を返すことは可能ですか? "length"
確かに、純粋な配列は返されません。
javascript - JavaScriptのforinloopはメソッドを反復処理しますか?
yuiblogの記事for in
で、Douglas Crockfordは、ステートメントがオブジェクトのメソッドを反復処理すると述べています。次のコードが["a"、 "b"、 "c"、 "d"、 "toString"]を生成しないのはなぜですか?.toString()およびその他のメソッドはmy_objのメンバーではありませんか?
python - Python イテレータの質問
私はこのリストを持っています:
リストをループして、同じ繰り返しで大文字と小文字を区別しない一致で連続した名前を処理したい。したがって、最初の反復では、'john' と 'John' を使用して何かを行い、次の反復を 'james' から開始したいと考えています。
Python の for ループを使用してこれを行う方法が思いつきません。何か提案はありますか?
javascript - for-in ループ内で新しいオブジェクトを作成する
新しいオブジェクトを作成し、json 内に格納されている各配列にいくつかのプロパティを割り当てたいと考えています。私はこれを除いてほとんど働いています...
オブジェクトのプロパティを出力すると、すべてが未定義になります。
ループの外側で単一のオブジェクトを作成し、それにプロパティを割り当てると、最初のプロパティ セットが次のように上書きされることを除いて、問題なく動作するようです。ループ内でオブジェクトを作成してプロパティを動的に割り当てることができない理由がわかりません。
javascript - Javascriptでプロパティを繰り返し処理しているときに過度のネストを防ぐために、継続する場合は良いパターンですか?
私は通常、このパターンを使用してオブジェクト プロパティを反復処理します。
私はこの過度のインデントが好きではなく、最近、これを行うことでそれを取り除くことができると指摘されました:
余分なレベルのインデントが導入されないため、これが気に入っています。このパターンは大丈夫ですか、それとももっと良い方法がありますか?
javascript - 何のために....JavaScriptのステートメントで
for...in ステートメントを JavaScript で使用する方法は誰でも説明できます。w3school の記事を読んだことがありますが、あまり明確ではないと思います。以下にコードを示します。これについて説明してください。