有没有一种方法可以在javascript中定义变量以将它们附加到另一个变量中?将字符串附加到变量名称
var card_id;
var card_links_grid+card_id;
我想第二个变量追加在第一个变量中找到的信息。对于每个card_id都会有一个card_links_grid。我希望能够访问特定card_id的card_links_grid变量。
什么是正确的方法来做到这一点?
有没有一种方法可以在javascript中定义变量以将它们附加到另一个变量中?将字符串附加到变量名称
var card_id;
var card_links_grid+card_id;
我想第二个变量追加在第一个变量中找到的信息。对于每个card_id都会有一个card_links_grid。我希望能够访问特定card_id的card_links_grid变量。
什么是正确的方法来做到这一点?
正确的做法是使用数组或对象,具体取决于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 =“一个id”; var anobject =新对象; var card_links_grid = {}; card_links_grid [card_id] = anobject;'这就是我所需要的。谢谢。 – user823527
您可以使用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
PS:如果我正确ustood问题
你可以,但它调试速度慢并且很难。改用适当的数据结构。几乎没有任何理由使用eval。 – Quentin
同意!就像我所有的使用关联数组.. ..但我回答了这个问题,nt建议替代..其人喜欢建议使用jQuery的大多数JS问题在这里! zzzz .. – Baz1nga
一个对象是正确的数据结构。 – user823527
我还建议为使用数组或目的。但如果你想尝试变量变量的方法,你可以尝试这样。
var card_id=1;
window['card_links_grid_' + card_id] = 'Marco';
document.write(window['card_links_grid_' + card_id]);
编号: http://www.i-marco.nl/weblog/archive/2007/06/14/variable_variables_in_javascri
我喜欢对象的想法。 – user823527
通常当我觉得我需要改变一个变量名这样的,我认识的最简单的办法是使用一个数组,而不是 – ChrisW
@ChrisW:或对象... –
这是你想要的吗? card_id = 3 card_links_grid1 card_links_grid2 card_links_grid3分别是5,6和7,但是当你使用card_links_grid + card_id时,你希望它返回7?我对么? – Baz1nga