将变量指定为 Javascript 中的数组目标(可变性?)
Specifying a variable as an array destination in Javascript ( mutability? )
我将在 Javascript 中填充 5 个数组,我填充的数组取决于“x”的值。我对这里的变量 usage/mutability 感到非常困惑。我的代码如下……
//Node arrays that hold the IDs of each node
nodeOne = [];
nodeTwo = [];
nodeThree = [];
nodeFour = [];
nodeFive = [];
var nodesButtonToNode = {pn_btn_1:"nodeOne", pn_btn_2:"nodeTwo", pn_btn_3:"nodeThree", pn_btn_4:"nodeFour", pn_btn_5:"nodeFive"};
x = "pn_btn_1";
nodesButtonToNode.x.push("I am supposed to go into nodeOne")
简而言之,如果 x = “pn_btn_1”,那么将通过在 nodesButtonToNode 中指定键来拉取需要填充的数组的值。在这种情况下,该数组将是 nodeOne。如果 x = “pn_btn_2”,那么需要添加的区域将是 nodeTwo。正如预期的那样,我收到了很多未定义的错误,我不确定我哪里出错了。
任何指针的许多 TIA
您应该使用以数组名称作为键的对象,然后您可以通过方括号 obj[var]
表示法访问它们:
//Node arrays that hold the IDs of each node
const nodes = {
nodeOne: [],
nodeTwo: [],
nodeThree: [],
nodeFour: [],
nodeFive: []
};
var nodesButtonToNode = {
pn_btn_1: "nodeOne",
pn_btn_2: "nodeTwo",
pn_btn_3: "nodeThree",
pn_btn_4: "nodeFour",
pn_btn_5: "nodeFive"
};
x = "pn_btn_1";
nodes[nodesButtonToNode[x]].push("I am supposed to go into nodeOne");
console.log(nodes);
您的 nodesButtonToNode 应该使用实际的数组而不是它们的名称。
var nodesButtonToNode = {
pn_btn_1: nodeOne,
pn_btn_2: nodeTwo,
pn_btn_3: nodeThree,
pn_btn_4: nodeFour,
pn_btn_5: nodeFive
};
这样您就可以直接更新数组。
此外,x 的值不在您的映射中,它应该是 pn_btn_1
//Node arrays that hold the IDs of each node
nodeOne = [];
nodeTwo = [];
nodeThree = [];
nodeFour = [];
nodeFive = [];
var nodesButtonToNode = {
pn_btn_1: nodeOne,
pn_btn_2: nodeTwo,
pn_btn_3: nodeThree,
pn_btn_4: nodeFour,
pn_btn_5: nodeFive
};
x = "pn_btn_1";
nodesButtonToNode[x].push("I am supposed to go into nodeOne");
console.log(JSON.stringify(nodeOne));
您的语法有一些错误,请查看示例
const nodeOne = [];
const nodeTwo = [];
const nodeThree = [];
const nodeFour = [];
const nodeFive = [];
const nodesButtonToNode = {
pn_btn_1: nodeOne,
pn_btn_2: nodeTwo,
pn_btn_3: nodeThree,
pn_btn_4: nodeFour,
pn_btn_5: nodeFive
};
const x = "pn_btn_1";
nodesButtonToNode[x].push("I am supposed to go into nodeOne");
console.log(nodesButtonToNode);
我将在 Javascript 中填充 5 个数组,我填充的数组取决于“x”的值。我对这里的变量 usage/mutability 感到非常困惑。我的代码如下……
//Node arrays that hold the IDs of each node
nodeOne = [];
nodeTwo = [];
nodeThree = [];
nodeFour = [];
nodeFive = [];
var nodesButtonToNode = {pn_btn_1:"nodeOne", pn_btn_2:"nodeTwo", pn_btn_3:"nodeThree", pn_btn_4:"nodeFour", pn_btn_5:"nodeFive"};
x = "pn_btn_1";
nodesButtonToNode.x.push("I am supposed to go into nodeOne")
简而言之,如果 x = “pn_btn_1”,那么将通过在 nodesButtonToNode 中指定键来拉取需要填充的数组的值。在这种情况下,该数组将是 nodeOne。如果 x = “pn_btn_2”,那么需要添加的区域将是 nodeTwo。正如预期的那样,我收到了很多未定义的错误,我不确定我哪里出错了。
任何指针的许多 TIA
您应该使用以数组名称作为键的对象,然后您可以通过方括号 obj[var]
表示法访问它们:
//Node arrays that hold the IDs of each node
const nodes = {
nodeOne: [],
nodeTwo: [],
nodeThree: [],
nodeFour: [],
nodeFive: []
};
var nodesButtonToNode = {
pn_btn_1: "nodeOne",
pn_btn_2: "nodeTwo",
pn_btn_3: "nodeThree",
pn_btn_4: "nodeFour",
pn_btn_5: "nodeFive"
};
x = "pn_btn_1";
nodes[nodesButtonToNode[x]].push("I am supposed to go into nodeOne");
console.log(nodes);
您的 nodesButtonToNode 应该使用实际的数组而不是它们的名称。
var nodesButtonToNode = {
pn_btn_1: nodeOne,
pn_btn_2: nodeTwo,
pn_btn_3: nodeThree,
pn_btn_4: nodeFour,
pn_btn_5: nodeFive
};
这样您就可以直接更新数组。
此外,x 的值不在您的映射中,它应该是 pn_btn_1
//Node arrays that hold the IDs of each node
nodeOne = [];
nodeTwo = [];
nodeThree = [];
nodeFour = [];
nodeFive = [];
var nodesButtonToNode = {
pn_btn_1: nodeOne,
pn_btn_2: nodeTwo,
pn_btn_3: nodeThree,
pn_btn_4: nodeFour,
pn_btn_5: nodeFive
};
x = "pn_btn_1";
nodesButtonToNode[x].push("I am supposed to go into nodeOne");
console.log(JSON.stringify(nodeOne));
您的语法有一些错误,请查看示例
const nodeOne = [];
const nodeTwo = [];
const nodeThree = [];
const nodeFour = [];
const nodeFive = [];
const nodesButtonToNode = {
pn_btn_1: nodeOne,
pn_btn_2: nodeTwo,
pn_btn_3: nodeThree,
pn_btn_4: nodeFour,
pn_btn_5: nodeFive
};
const x = "pn_btn_1";
nodesButtonToNode[x].push("I am supposed to go into nodeOne");
console.log(nodesButtonToNode);