2017-04-19 4 views
1

エラーメッセージが表示されるのはなぜですか?次のコードで "Line [i] is undefined"ですか?それは些細なことかもしれませんが、私はただそれを修正することはできません。配列インデックスに関するエラーメッセージ

私はなど

Line[0]またはLine[1]を使用しかし、私はループを反復処理する必要がある場合には、例えば、動作します。 [0]それはライン[1]またはラインを見つけることができません行の後ので、

var Line = [{ Func: "Function"}]; 
for (i = 0; i <= 15; i++) { 
    Line[i].Func = "Function" + I; 
} 
+1

'Line'は要素配列' [0 => {Func:...}] 'ですので、Line [1]は未定義ですので、' Line [1] .Func'は定義されていません – Peter

+1

16項目の単一項目配列を使用して...新しい項目を追加しようとしていますか? –

答えて

0

はあなたのラインアレイは、その中に1つだけを目的としている、あなたは0から15までループしている[2]。 Lineにオブジェクトを15回追加したいと思うかもしれません。 ループのために、あなたの内にこのような何かを試してみてください:

Line.push({Func:"Function" + i}); 

https://www.w3schools.com/jsref/jsref_push.asp

+1

あなたは文字列を押すと、オブジェクトが必要です.... –

1

あなたは配列に一つだけの要素を持っているので。

var Line = [{ Func: "Function"}]; 
for (i = 0; i <= 15; i++) { console.log(i); Line[i].Func = "Function" + i;} 

は0と1を出力し、その後、それはあなたが0から15までをループ、および1つのだけの要素(インデックスを持つ配列へのインデックスとしてループ変数を使用しているエラー

0

をスローします= 0)

は、新しい要素

var Line = [{ Func: "Function"}]; 
for (i = 0; i <= 15; i++) { 
    Line[i] = {Func:"Function" + i}; 
} 
3

を追加しようとしているようにあなたがi <= 15に反復しようとしているとJavaScriptがを評価する際にエラーを取得ルックスArray.prototype.forEach()を使用して

var Line = [{ Func: "Function"}]; 
 
for (var i = 0, len = Line.length; i < len; i++) { 
 
    Line[i].Func = "Function" + i; 
 
} 
 

 
console.log(Line);

または反復:それはundefined

あるのでは、代わりにあなたはLine配列の長さはゴマ繰り返すことができ

var Line = [{ Func: "Function"}]; 
 
Line.forEach((el, index) => el.Func = "Function" + index); 
 

 
console.log(Line);

それとも、あなたのように行うが、最初の要素Line[i]をチェックが存在します

var Line = [{ Func: "Function"}]; 
 
for (var i = 0; i <= 15; i++) { 
 
    Line[i] && (Line[i].Func = "Function" + i); 
 
    console.log(i); 
 
} 
 

 
console.log(Line);

0

あなたは1の長さの配列を持っていて、どちらかそう15に、あなたができるまで反復しています配列の制限を確認するか、デフォルト値の15を指定してください。

一方
var Line = [{ Func: "Function"}]; 
for (var i = 0; i <= 15; i++) { 
    if (Line[i] === undefined) { 
     Line[i] = { Func: "Function"} 
    } 
    Line[i].Func = "Function" + i; 
} 

、これはあなたが要素の数にかかわらず、実際のリストを通過することができる方法である:

は、これは15にデフォルト値を提供する方法である

var Line = [{ Func: "Function"}]; 
for (var i = 0; i <= Line.length; i++) { 
    Line[i].Func = "Function" + i; 
} 
関連する問題