2016-11-14 7 views
2

なぜ4番目のサブアレイがもう動作しないのか説明できますか? input[(i + 1)]undefinedなので、私は信じていますか?しかし、それは別のもののために働く... 私は初心者であり、最良の選択肢を理解する方法をまだ学んでいます。Js:入れ子になった多次元配列のエラーの半分がまだ動作しています

function dataHandling(){ 


    for (var i=0;i < input.length ; i++){ 
    for(var j=0; j < input[i].length; j++) 
    /* 
     if(j === 0){ 
     console.log("Nomor ID: "+ input[i][j]); 
     } 
     else if(j=== 1){ 
     console.log("Name: "+ input[i][j]); 
     } 
     else if(j=== 2){ 
     console.log("Birthplace n date: "+ input[i][j] +" " + input[i+1][j+1]); 
     } 
     else if(j=== 4){ 
     console.log("Hobby: "+ input[i][j] +"\n"); 
     } 
     */ 
    switch(j){ 
     case 0: 
      console.log("Nomor ID: "+ input[i][j]); 
      break; 

      case 1: 
      console.log("Name: "+ input[i][j]); 
      break; 

      case 2: 
      console.log("Birthplace and date: "+ input[i][j] +" " + input[i+1][j+1]); 
      break; 

      case 3: 
     // console.log("birthdate: "+ input[i][j]); 
      break; 

      case 4: 
      console.log("Hobby: "+ input[i][j] +"\n"); 
      break; 

      default: 
     break; 
     } 


    } 

} 

var input = [ 
       ["0001", "Roman Alamsyah", "Bandar Lampung", "21/05/1989", "Reading"], 
       ["0002", "Dika Sembiring", "Medan", "10/10/1992", "Playing Guitar"], 
       ["0003", "Winona", "Ambon", "25/12/1965", "Cooking"], 
       ["0004", "Bintang Senjaya", "Martapura", "6/4/1970", "Codding"] 
       ]; 

dataHandling(input); 

それは第一、第三の配列のために動作しますが、それは常に第四中のエラー:

Nomor ID: 0003 
Name: Winona 
Birthplace n date: Ambon 6/4/1970 
Hobby: Cooking 

Nomor ID: 0004 
Name: Bintang Senjaya 
TypeError: input[(i + 1)] is undefined <<< 

最初iがエラーなくiの唯一の第四ことになりますので、場合、私は理解することができます次のサブアレイを読み込みます。 (初心者の方法で説明するのは申し訳ありませんが、まだ限られた知識で説明するのは難しいです。)

答えて

2

まず、Javascriptを学ぶことでこれまでに素晴らしいことをしていると言いたいと思います。エラーはi=4input[i+1][j+1]を使用すると5番目の配列にアクセスしようとしています。幸いにも、それは問題ではない。

function dataHandling(){ 
 

 

 
    for (var i=0;i < input.length ; i++){ 
 
    for(var j=0; j < input[i].length; j++) 
 
    /* 
 
     if(j === 0){ 
 
     console.log("Nomor ID: "+ input[i][j]); 
 
     } 
 
     else if(j=== 1){ 
 
     console.log("Name: "+ input[i][j]); 
 
     } 
 
     else if(j=== 2){ 
 
     console.log("Birthplace n date: "+ input[i][j] +" " + input[i+1][j+1]); 
 
     } 
 
     else if(j=== 4){ 
 
     console.log("Hobby: "+ input[i][j] +"\n"); 
 
     } 
 
     */ 
 
    switch(j){ 
 
     case 0: 
 
      console.log("Nomor ID: "+ input[i][j]); 
 
      break; 
 

 
      case 1: 
 
      console.log("Name: "+ input[i][j]); 
 
      break; 
 

 
      case 2: 
 
      console.log("Birthplace and date: "+ input[i][j] +" " + input[i][j+1]); 
 
      break; 
 

 
      case 3: 
 
     // console.log("birthdate: "+ input[i][j]); 
 
      break; 
 

 
      case 4: 
 
      console.log("Hobby: "+ input[i][j] +"\n"); 
 
      break; 
 

 
      default: 
 
     break; 
 
     } 
 

 

 
    } 
 

 
} 
 

 
var input = [ 
 
       ["0001", "Roman Alamsyah", "Bandar Lampung", "21/05/1989", "Reading"], 
 
       ["0002", "Dika Sembiring", "Medan", "10/10/1992", "Playing Guitar"], 
 
       ["0003", "Winona", "Ambon", "25/12/1965", "Cooking"], 
 
       ["0004", "Bintang Senjaya", "Martapura", "6/4/1970", "Codding"] 
 
       ]; 
 

 
dataHandling(input);

:何がやりたいことはこれだけ jは1( input[i][j+1])増加しなければならない、同じサブアレイにアクセスしますが、次の項目です
関連する問題