2017-05-29 5 views
1

特定の結果を得るために配列を使用しようとしましたが、エラーが発生します未定義のプロパティーを読み取ることができませんしかし、未定義エラーのプロパティを読み取ることができません

for (var j=0;j<$scope.ftListe.length;j++){ 
    if(task[j].projet_id==id){ 
     if(temp!=task[j].NomTache) 
      temptache.push(task[j]); 
     tempcol.push(lecollaborateur[j]); 
    } 
    temp=task[j].NomTache; 
} 
$scope.temptache=temptache; 
$scope.tempcol=tempcol; 

for(var i=0; i<temptache.length;i++){ 
    for (var k=0;k<$scope.ftListe.length;i++){ 
     console.log("l'id de la tache: "+temptache[i].IdTache); 
     if(temptache[i].IdTache==$scope.ftListe[k].tacheid){ 
      temps = temps+$scope.ftListe[k].TempsPasse; 
      passe= passe+$scope.ftListe[k].TempsPasse * lecollaborateur[k].CoutParJour; 
     } 
    } 
    tempsAr.push(temps); 
    passeAr.push(passe); 
    temps=0; passe=0; 
} 

Iからエラーを取得するプロパティは、私が間違って何をやっている、IdTacheのですか?

+0

コンソールtemptache、それはIdTacheを持っているかどうかを確認しますか? –

+0

@Dinesh私がtemptache [i]をコンソールにするときに.IdTache私は問題なしで結果を得ます – Jihane

+0

本当に助けが必要な場合はPlunkrまたはJSFiddleを提供してください。 – SjaakvBrabant

答えて

2

次の行を見てみてください:インナーforループで、あなたの代わりにki変数(i++)をインクリメントすること

for(var i=0; i<temptache.length;i++){ 
    for (var k=0;k<$scope.ftListe.length;i++){ 

注意。これにより、iは、内側のループ内のインクリメントを境界外オフセットに得ることができます。

JSランタイムエラーは、あなたのスクリプトが無限ループに入るのを防ぎます。つまり、"私が結果を得られるのと同じプロパティをログに記録するとき"実際には、配列temptacheの有効な範囲に再入力してください。

あなたはそれを修正する必要があります。

for(var i=0; i<temptache.length;i++){ 
    for (var k=0;k<$scope.ftListe.length;k++){ 
+3

月曜日はラフかもしれません... ;-) – Matheno

+1

@AlonEitan、私は完全にそれを逃した、ありがとう – Jihane

関連する問題