2016-12-19 13 views
-1

私は一連の変数を動的に作成しようとしています。 forループのitem[i]の値を使用して、まだ私はエラーをスローし続け、私が間違っていることを確信しています。次のように変数名として配列項目を使用する

エラーメッセージは次のとおりです。

var items[i] = post.items[i]; SyntaxError: Unexpected token [ 

これは私のコードです:

items = ["item1", "Item2", "Item3"]   
for (var i = 0; i < items.length; i++){ 
    if (post[items[i]]) { 
     var items[i] = post.items[i]; 
     console.log(items[i]); 
    } else { 
     response.writeHead(400, {"X-Reason": items[i] + "Is Not Set"}); 
     response.end(); 
     return; 
    } 
} 
+1

その行の 'var'を削除します。 –

+0

しかし、私はitem [i]の値が何であるかの名前で新しい変数を作成しようとしていますか? – Mattyboi1670

+1

@ Mattyboi1670:そうしますが、それはそのコードがするものではありません。 'var newVariable = items [i] = post.items [i];'(しかし、これはいい考えではありません。 –

答えて

0

私が正しく質問を理解していれば、あなたは結果を見ることができるので、これはあなたがやりたいだろう...

items = ["item1", "item2", "item3"]; 
for (var i = 0; i < items.length; i++){ 
    if (post[items[i]]) { 
     window[items[i]] = post[items[i]]; 
    } else { 
     response.writeHead(400, {"X-Reason": items[i] + " is Not Set"}); 
     response.end(); 
     return; 
    } 
} 

はここに含まpost変数とスニペットにコードのバージョンです...今

「なぜ」あなたはこれをしたい理由のある本当のクエスト

var post = { 
 
    item1: "This is item 1", 
 
    item3: "This is item 3" 
 
}; 
 

 
var items = ["item1", "item2", "item3"]; 
 

 
for (var i = 0; i < items.length; i++){ 
 
    if (post[items[i]]) { 
 
    window[items[i]] = post[items[i]]; 
 
    } else { 
 
    console.log("X-Reason:" + items[i] + " is not set"); 
 
    } 
 
} 
 

 
console.log(item1); 
 
console.log(item3);
あなたが求めているはずのイオンですが、これはあなたが尋ねたことをするでしょう。おそらくあなたが本当に必要とするものを達成するためのより良い方法があると思われます。

NB。 items配列の変数名に注意してください。この例では、すべて小文字に変更しました。同じことをお勧めします。

+1

あなたの答えをありがとう、これは私がやっていることですが、私はこの問題について私は方法を再考する必要があります。 – Mattyboi1670

+0

私は同意する - あなたも聞いてうれしい:) – Archer

0

var新しい変数を宣言するために使用されます。

の変数に格納されているオブジェクトのプロパティを変更しようとしています。

varを使用しないでください。

0

この行からvarを削除します。

var items[i] = post.items[i]; 

へ:

items[i] = post.items[i]; 

プロパティの割り当ては使用せず、変数宣言(var)を使用することはできません。

関連する問題