使用数组项作为变量名
Ussing Array Item as Variable Name
我正在尝试动态创建一系列变量,例如在 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;
}
}
var
用于声明一个new变量。
您正在尝试修改存储在 现有 变量中的对象的 属性。
不要使用 var
。
从这一行中删除 var
:
var items[i] = post.items[i];
至:
items[i] = post.items[i];
属性赋值不使用也不能使用变量声明(var
).
如果我对问题的理解正确,这将满足您的要求...
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);
现在 "why" 为什么要这样做是您真正应该问的问题,但这将满足您的要求。我怀疑可能有更好的方法来实现您真正需要的。
注意。确保您注意 items 数组中的变量名称。在此示例中,我将它们全部更改为小写 - 我建议您也这样做。
我正在尝试动态创建一系列变量,例如在 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;
}
}
var
用于声明一个new变量。
您正在尝试修改存储在 现有 变量中的对象的 属性。
不要使用 var
。
从这一行中删除 var
:
var items[i] = post.items[i];
至:
items[i] = post.items[i];
属性赋值不使用也不能使用变量声明(var
).
如果我对问题的理解正确,这将满足您的要求...
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);
现在 "why" 为什么要这样做是您真正应该问的问题,但这将满足您的要求。我怀疑可能有更好的方法来实现您真正需要的。
注意。确保您注意 items 数组中的变量名称。在此示例中,我将它们全部更改为小写 - 我建议您也这样做。