JavaScript

Loops

27 May 2014

ループは、"for" や "while" を含め、条件が合うまで一連の命令を繰り返す

Counting With Loops

One to Five

fo## onsole.log(i) を何度も実行します。

変数 i の値を変えることで、何回コードを実行するかを追跡しています。

ループ内のコードは変数 i を読むことができます。

var i;

for (i = 1; i <= 5; i++) {
    console.log(i);
}

ループ変数は、変数 i の変え方を示しています。

Counting by Twos

i++ は、 i を1増します。

では1より多くを増やすにはこれを使います。

i += number

var i;

for (i = 2; i <= 6; i += 2) {
    console.log(i);
}

down

for ループは、カウントを増やすだけでなく減らすこともできます。

変数 i の初期値を大きくして、それを小さくしながらループさせます。

カウントを減らすには i--i -= number を使います。

var i;

for (i=5 ;i>=0 ;i-- ) {
    console.log(i);
}

Looping in Arrays and Strings

Looping Through Arrays

ループをカウントして使えました。

そしてループを使って配列のすべての要素を扱うこともできます。

配列の各要素は位置番号(index:指標)を持っています。

まず、配列の全要素に渡り繰返すことは、配列の全指標に渡り繰返すことです。

配列の指標は 0 から始まり、配列の大きさ( array.length )引く1で終わります。

配列の指標番号(index number)がわかれば、 対応する配列要素( array[indexNumber] )を取得できます。

var i;
var animals = ["cat", "dog", "ferret"];

// Loop goes here
for (i=0;i< =animals.length-1;i++){
  console.log(animals[i]);
}

Better, Stronger, Faster

コードはより早く動くほうがいいです。

学習中のコードは、十分に早いとは言えません。

array.length を読むプロセスは少し遅くなります。

for ループの2番目、3番目のパラメータは、繰返し毎に評価されます。

その為、配列の要素が多い場合には時間がかかるかもしれません。

var length = animals.length;

を追加し、式の評価を一度だけにします。

var i;
var animals = ["cat", "dog", "ferret"];
var length = animals.length;
// Loop goes here
for (i=0;i<=length-1;i++){
  console.log(animals[i]);
}

Looping Through Strings

文字列は、基本的に文字の配列です。 配列の要素を扱うのと同様な方法で文字列の個々の文字を取得することができます。 string[indexNumber]

var word = "code";
var i = 0;
// Loop goes here
for (i=0;i < word.length;i++){
  console.log(word[i]);
}

Building substring (Part 1)

substringはJavaScriptの関数です。文字列の一部を開始位置から終了位置 まで抜き取ります。この関数を for ループで作ってみます。

// Define substring here
var substring = function(input,start,end){
  var i = 0;
  for(i=start;i< =end;i++){
    console.log(input[i]);
  }
};

substring("lorem ipsum dolor",6,10);

Building substring (Part 2)

正しい文字を抜き取れたので、抜き取った文字を繋いで1つの文字列を作り、 呼び出し元へ返しましょう。

// 空の文字列変数を用意する
var subset = "";
// substring を定義する
var substring = function(input,start,end){
  var i = 0;
  for(i=start;i< =end;i++){
    //文字を繋げる
    subset += input[i];
  }
  // 結果の文字列を返す
  return subset;
};
console.log(substring("lorem ipsum dolor",6,10));

While Loops

Conditions!

while ループは、条件が真の間、繰り返します。

var condition = true;
while (condition) {
    console.log("I only print once!");
    break;
}

Imitation is the Sincerest Form of Flattery

while ループはかなり柔軟です。

for ループで出来ることは、できます。

var i = 1;
while(i < = 5){
  console.log(i);
  i++;
}

Counting Odd Numbers, Again

while ループでも i に2を加えることができます。

var i = 1;
while(i < = 5){
  console.log(i);
  i += 2;
}

Splitting Name (Part 1)

while ループは、コードで何かを探さなければならない時に、 それがどの位置にあるかわからない場合、特に役に立ちます。

名前の文字列を分割してファーストネームを取出す関数を作っていきます。

// 関数を定義
var getFirstName = function(fullName){
  // index変数を定義
  var i = 0;
  // 文字列長の変数を定義
  var length = fullName.length;
  // 繰り返し処理
  while(i< length){
    // 1文字出力
    console.log(fullName[i]);
    i++;
  }
} ;

getFirstName("Take Koyan");

Splitting Name (Part 2)

while ループの条件は柔軟です。今回は2つの条件を"&&"で組合せます。

ループの終了条件は、文字列が終わったか、空白があった時です。

// 関数を定義
var getFirstName = function(fullName){
  // 次の文字を保持する変数(先頭の文字を設定)
  var next = fullName[0];
  // index変数
  var i = 0;
  // 文字列長の変数
  var length = fullName.length;
  // 繰り返し
  while(i< length && next !==" "){
    // 文字出力
    console.log(fullName[i]);
    // indexのインクリメント
    i++;
    // 次の文字を代入
    next = fullName[i];
  }
} ;

getFirstName("Take Koyan");

Splitting Name (Part 3)

個々の文字を1つの文字列に繋げて、呼び出し元へ返しましょう。

// 抜取った文字を格納する変数
var firstName = "";
// 関数定義
var getFirstName = function(fullName){
  var next = fullName[0];
  var i = 0;
  var length = fullName.length;
  while(i< length && next !==" "){
    // 文字列を繋げる
    firstName += fullName[i];
    i++;
    next = fullName[i];
  }
  // 文字列を返す
  return firstName;
} ;

console.log(getFirstName("Take Koyan"));