将字符串附加到变量名

5
有没有一种方法可以在JavaScript中定义变量并将它们附加到另一个变量中?
var card_id;
var card_links_grid+card_id;

我希望将第二个变量附加上在第一个变量中找到的信息。对于每个card_id,都会有一个card_links_grid。我想要能够访问特定card_id的card_links_grid变量。
正确的方法是什么?

5
通常当我认为需要更改变量名称时,我会意识到最简单的方法是使用数组。 - ChrisW
这是您想要的吗?card_id=3,card_links_grid1、card_links_grid2和card_links_grid3分别对应5、6和7,但当您使用card_links_grid+card_id时,您希望它返回7?我理解正确吗? - Baz1nga
一个对象会做我想要的事情。 - user823527
3个回答

8

正确的方法是根据id是否按顺序排列来使用数组或对象。

var card_links_grid = {};
var card_id = "the_hanged_man";
card_links_grid[card_id] = "some value";

或者

var card_links_grid = [];
card_links_grid.push("some value");

变量变量是可能的,但只有通过一些难以维护和调试的方法才能实现,应该避免使用。使用为您要表示的数据结构设计的对象类型。


我同意,听起来你应该使用一个对象。上面的例子应该解决你的问题。 - Boundless
@Quentin 您的建议正是我所需要的。实际上,我并不需要将变量附加到对象上,因为该对象将允许我通过card_id从card_links_grid中检索信息。我正在测试这种方法。 - user823527
一个对象起作用了。我有 var card_id = "an id"; var anobject = new object; var card_links_grid = {}; card_links_grid[card_id] = anobject; 这样做正是我所需要的。谢谢。 - user823527

3

我喜欢对象的概念。 - user823527

0

你可以使用eval方法来实现同样的功能,像这样

var card_id=3;

var card_links_grid1=5,card_links_grid2=6,card_links_grid3=7;

eval("card_links_grid"+card_id) //will  o/p 7

附言:如果我正确理解了问题


你可以这样做,但是它很慢且难以调试。相反,使用适当的数据结构。几乎没有理由使用eval。 - Quentin
1
同意!我完全赞成使用关联数组..但是我在回答问题,而不是提出替代方案..这就像人们在这里建议大多数js问题使用jquery!无聊.. - Baz1nga

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接