我正在尝试动态创建一系列变量,例如在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;
}
}
答案 0 :(得分:0)
var
用于声明 new 变量。
您正在尝试修改存储在现有变量中的对象的属性。
请勿使用var
。
答案 1 :(得分:0)
从此行中删除var
:
var items[i] = post.items[i];
为:
items[i] = post.items[i];
属性赋值不使用,也不能使用变量声明(var
)。
答案 2 :(得分: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数组中的变量名称一样小心。在这个例子中我将它们全部改为小写 - 我建议你也这样做。