Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

配列の反復で「for…in」を使用することがjavascriptで悪い考えであるのはなぜですか?


配列の反復を伴うJavaScriptでfor..inループを使用することは、次の動作のために悪い考えです-

通常の反復ループの使用

let arr = []
arr[4] = 5
for (let i = 0; i < arr.length; i ++) {
   console.log(arr[i])
}

出力

undefined
undefined
undefined
undefined
5

for in構文を使用してこの配列を繰り返し処理した場合、次のようになります-

let arr = []
arr[4] = 5
for (let i in arr) {
   console.log(arr[i])
}

出力

5

配列の長さは5ですが、これでも配列内の1つの値のみが繰り返されることに注意してください。

これは、for-inステートメントの目的がオブジェクトのプロパティを列挙することであるために発生します。このステートメントはプロトタイプチェーンの上位にあり、継承されたプロパティも列挙しますが、これは望ましくない場合もあります。


  1. JavaScript配列を条件付きで結合しますか?

    以下は、JavaScriptの条件を持つJavaScript配列のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>

  2. Seleniumを使用してJavaScriptを含む複雑なページが読み込まれるのを待ちます。

    JavaScriptを含む複雑なページがSeleniumで読み込まれるのを待つことができます。ページが読み込まれた後、Javascriptメソッド document.readyState を呼び出すことができます 完了するまで待ちます 返されます。 構文 JavascriptExecutor js = (JavascriptExecutor)driver; js.executeScript("return document.readyState").toString().equals("complete"); 次に、明示的な待機を使用して、ページでアク