今回はLOOPについてメモしますね。ここで前回のJavascriptメモのリンクがございますので、もしよかったらどうぞ↓:
JavaScript#Hello World,String,Function
Loop
Loopはいわゆる繰り返しで、プログラムの中に絶対欠けないものです。Logging、データ処理など…Loopがあるからこそ全部のコードを1から書かなくてよいんです。
For loop
let array1=[1,2,3,4,5,6,7,8]; for (let i=0;i<array1.length;i++){ console.log(array1[i]); }
上記のコードでForを使って、array1のelementsをすべてアクセスします。
let array1=[1,2,3,4,5,6,7,8]; for (let i =array1.length;i>=0;i--){ console.log(array1[i]); }
上記のコードは先のFor loopと同じですが、注意したいのはIndexは配列のサイズから減るのことです。つまりこのLoopingはIndexが一番大きElementsから一番小さいまでアクセス。
わかりましたか?For loopは確実なサイズ以内の回るしかできません。つまり、無限LOOPになってしまうことがあまりないです。
While loop
let array1=[1,2,3,4,5,6,7,8]; let x=0; while(x<array1.length){ console.log(array1[x]); x++;}
上のコードは先のFor loopと同じ結果でましたけど、While(条件True)のとき{}の中のコードを実行します。{}の中にx++で毎回{}の最後にいまのINDEXを1プラスします。
let array1=[1,2,3,4,5,6,7,8]; let x=0; while(x<array1.length){ console.log(array1[x]);}
もしx++がなくなったらどうになります?While Loopがずっと回ってしまうことになる。いわゆる無限LOOPですね。ここでは気をつけないといけません。
Iterators
Loopingを使うときJavascriptはさまさまなFunctionが提供し、プログラマーに簡単で配列をアクセスできるようにします。ここで一部のFunctionを紹介しましょう。
.foreach()
let array1=[1,2,3,4,5,6,7,8]; array1.forEach(function(x){ console.log(x);});
- まずはarray1は.forEach functionを呼び出します。
- Functionをを作成し引数Xを取ります。
- .forEach()はIterators functionなのでarray1のElementsは自動的にXにPASSします。
array1.forEach(x=>console.log(x+'-'));
forEach()、もっと簡単書き方。
注意したいのはforEach()のreturn value はundefinedです。つまりオリジナルの配列の値が変わりません。
map()
ではもし配列の内容変更したいならmap()を使ってください。
let array1=[1,2,3,4,5,6,7,8]; array1=array1.map(function(y){return y*10 });
このコードは配列のElementsをアクセスし10にかけ、そのreturnの結果をarray1に戻る。
array1=array1.map(x=>x*10);
map()、もっと簡単書き方。
filter()
このFunctionは配列の中に条件に合うElementsだけ返しします。
y=array1.filter(function(x){return (x>10 && x<50)});
このコードでarray1の中に10より大き、50より小さいのElementsをReturnしyに入れます。
y=array1.filter(x=> x>10 && x<50);
filter()、もっと簡単書き方。
このリンクは他のFunctionの説明もありますので↓
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
今回はここまでしますね!
じゃまたー