有沒有一種方法可以在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