問題タブ [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 投票する
4 に答える
4969 参照

javascript - for-in ループで前のキー/値にアクセスする

私はjavascriptを初めて使用するので、何か明らかな場合はご容赦ください。

次のような for-in ループがあるとしましょう...

for-in ループで前または次のキーと値のペアにアクセスすることは可能ですか?

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

javascript - Javascriptの「for..in」は「未定義」の値を生成します

Chrome の拡張機能に取り組んでいますが、Javascript での「for..in」の使用法について疑問に思っています。私が見つけた問題を例で説明しましょう:

タイプの volatile オブジェクトがあるとします{prop1: "foo", prop2: "bar", ...}。このオブジェクトをいくつかの構文で文字列に保存したい"prop1=foo;prop2=bar;...". 使用したコードは次のとおりです。

次の文字列が返さfunれます: undefinedx=1;y=2;.

なぜこの動作に従うのか、私にはよくわかりません。JSON を使用してこのようなことを「文字列化」できることは知っていますが、実際にはなぜそれが起こるのかを理解したいだけです。

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

ios - 高速な列挙と NSDictionary では、キーの順序で反復することは保証されていません。どのようにすれば、キーの順番通りにできますか?

アプリが必要とするデータを含む応答として NSDictionary を返す API と通信しています (データは基本的にフィードです)。このデータは、新しいものから古いものへと並べ替えられ、最新の項目が NSDictionary の先頭に表示されます。

それらをすばやく列挙するとfor (NSString *key in articles) { ... }、順序はランダムに見えるため、それらを操作する順序は、新しいものから古いものへの順序ではなく、完全にランダムです。

私は読んだことがあります.NSDictionaryで高速列挙を使用する場合、配列を順番に反復することは保証されていません.

しかし、私はそれが必要です。NSDictionary が入っている順序で NSDictionary を反復処理するにはどうすればよいですか?

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

javascript - for..in によるイベント ループのブロック

revalidator ( https://github.com/flatiron/revalidator )のスキーマ定義を使用して、不要なプロパティの Javascript オブジェクトをチェックしたいと思います。

次のスニペットを思いつきました:

このコードは、必要なプロパティをコピーし、ネストされたスキーマに再帰するスキーマを同期的にループします。

今回はイベントループをブロックしないか心配です。

I/O を行っていないので、これは無視できますか?

編集

コメントありがとうございます。jbaylina が述べたように、スキーマが最大 2 レベルにネストされ、それぞれ約 10 個のプロパティがあるのは事実です。それにもかかわらず、私は setImmediate を使用してみましたが、実際に問題がある場合は非同期で反復する可能性があります。

これは非常に面倒に見えますが、機能し、テストに合格します。このソリューションについてどう思いますか?

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

javascript - javascript: 遅い for...in ループを作成するにはどうすればよいですか

独自のスライドショーを作成しています。各反復の間に観察可能な一時停止を加えて、オブジェクトのメンバーを反復処理したいと思います。

setInterval を使用して、私はこれを思いつきました:

ただし、これは機能しません。キーと値のペアを即座にログに記録しますが、各操作の間に間隔があると予想されます。

各操作の間に一時停止を入れて反復を行うにはどうすればよいですか?