我正在用硬编码值重写一个具有灵活性和动态性的项目。但是,我一直遇到麻烦。
我现在编写了大部分JS代码,但是我发现了一些我无法解决的错误,所以我决定从头开始。我现在正在考虑将我的数据放入一个跟踪总数的对象中。该项目基本上允许人们按事件订购门票,酒店等。
然而,这曾经是硬编码,就像我说的那样。现在它必须灵活,我不确定是否可以动态创建一个对象?这是我的问题:
我以前使用的对象如下:
var total = { amount: 0,
tickets: 0,
passes: 0,
fri: 0,
sat: 0,
sun: 0,
freecarpass: 0,
freepass_fri: 0,
freepass_sat: 0,
freepass_sun: 0,
passes_fri: 0,
passes_sat: 0,
passes_sun: 0,
passes_totalPurchase: 0
};
正如你所看到的,日子是硬编码的。但是,使用新系统,每个事件都会有不同的日期,所以我需要能够基于此构建我的对象,如果这有意义的话。
例如,如果事件从周三到周六运行,则对象中的日期将为:
wed: 0, thu: 0, fri: 0, sat: 0
等
如果可能的话,我不知道如何实现这个目标?如果需要,我可以提供更多的项目代码。提前谢谢。
答案 0 :(得分:2)
您仍然可以动态添加新属性:
total.wed = 0;
或
total["wed"] = 0;
答案 1 :(得分:1)
虽然我不相信这是解决问题的最佳方法,但是你可以在Javascript中随心所欲地添加或删除对象的属性。基本上JS对象只是属性的键值对。所以你可以从拥有一个所有日子都会分享的对象开始,就像这样:
var total = {
amount: 0,
tickets: 0,
passes: 0
};
然后,只需为其指定一个值即可添加属性,例如:
total.sat = 3;
total.sun = 1;
W3Schools对此here.
有更长的解释答案 2 :(得分:0)
是的,在javascript中你可以用对象做很多事情。
要向对象添加新属性,只需执行total["nameofyourday"]=0
;
这样,如果要动态更改“nameofyourday”的值,可以在括号之间放置一个包含字符串的变量。像那样:
var day="wed";
total[day]=0;
,这将导致total.wed值等于0。
为了提供更具体的实现,我认为需要更多的代码。