我有一系列这样的月份:
var months = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];
我想做的是将月份的名称设为一个变量并为其设置一个对象,如下所示:
for(i=0;i<11;i++){
months[i] = $(".bitem:eq("+i+")");
}
但这只是替换了 months[i]
(例如,if i=0
它将用对象替换“jan”)。我想要做的是使用 months[i]
等于的字符串作为变量名。我试过像这样使用 .toString()
:
for(i=0;i<11;i++){
months[i].toString() = $(".bitem:eq("+i+")");
}
但是我得到了错误:
Error: ReferenceError: invalid assignment left-hand side
最佳答案
为什么你需要有变量名 jan
, feb
等等?据我所知,您可以使用具有属性的普通旧对象来做任何您想做的事情:
var monthNames = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];
var months = {};
for(var i = 0; i < monthNames.length; i++) {
months[monthNames[i]] = $(".bitem:eq("+i+")");
}
// Example usage
var januaryItem = months["jan"];
// or equivalent: months.jan;
关于Javascript:从数组设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11819912/