for loop javascript




Javascriptには、Javaと同様のforループ構文が強化されていますか? (5)

私は、JavaScriptにforループの構文を持たせることで、配列を繰り返し処理できるかどうか疑問に思っています。 たとえば、Javaでは、次の操作を行うだけです。

String[] array = "hello there my friend".split(" ");

for (String s : array){
    System.out.println(s);
}

出力は次のとおりです。

hello
there
my
friend

JavaScriptでこれを行う方法はありますか? または、 array.lengthを使用して、以下のようにループ構文の標準を使用するarray.lengthありますか?

var array = "hello there my friend".split(" ");

for (i=0;i<array.length;i++){
    document.write(array[i]);
}

ES2015(ES6)では、 for-ofループを使用できます。 IEを除いてほとんどのブラウザでサポートされています。

let array = [10, 20, 30];

for (let value of array) {
  console.log(value);
}

Mozillaの説明はこちら


JavaScriptにはforeachスタイルのループ( for (x in a)がありますが、 Array使用することは非常に難しいコーディング方法です。 基本的に、 array.lengthアプローチは正しいです。 新しいJavaScriptの場合はa.forEach(fn)メソッドもありますが、すべてのブラウザに存在することは保証されておらず、 array.lengthよりも遅いです。

編集2017 :実際にどのようにそれが行くかわかります。 現在、ほとんどのエンジンでは、関数がインラインであるarr.forEach(function() { ... }) 、すなわち、 arr.forEach(function() { ... })が高速であれば、 .forEach()for(;;)よりも速く、 foo = function() { ... }; arr.forEach(foo) foo = function() { ... }; arr.forEach(foo)はそうでないかもしれません。 2つは同一でなければならないと考えるかもしれませんが、第1のコンパイラはコンパイラが第2のコンパイラよりも最適化する方が簡単です。


これを試して、

 var errorList = new Array();
       errorList.push("e1");
       errorList.push("e2");

       for (var indx in errorList){
               alert(errorList[indx]);
          }

より新しいJavaScriptエンジンの配列プロトタイプには "forEach"メソッドがあります。 同様の方法でプロトタイプ自体を拡張するライブラリもあります。


x = [1,2,3];
for (i in x) {
  console.log(i);
}




iterator