0

我有一个 JavaScript 变量以下列方式定义为一个新数组:

var myDaysComparisonData = new Array(['Mondays', 0], ['Tuesdays', 0], ['Wednesdays', 0], ['Thursdays', 0], ['Fridays', 0], ['Saturdays', 0], ['Sundays', 0]);

而且我有 7 个全局定义的变量,称为myMondaysTotal,myTuesdaysTotal等等,其中包含我想在一周中的相应日期替换上部数组中的零的值。这种情况下的方法是什么?

4

3 回答 3

0

您拥有的是数组数组,看起来它不符合您的目标。

无论如何,只需将零替换为变量,请将变量名称改为零:

var myDaysComparisonData = new Array(['Mondays', myMondaysTotal], ['Tuesdays', myTuesdaysTotal], ...);

更好的方法是这样的关联数组:

var myDaysComparisonData = {'Mondays': myMondaysTotal, 'Tuesdays':  myTuesdaysTotal, ... };

如果你真的必须使用这个结构并且想用值填充内部数组,你必须搜索每个项目并分配它的值,没有优雅的解决方案:

for (var i = 0; i < myDaysComparisonData.length; i++) {
    var curArray = myDaysComparisonData[i];
    switch (curArray[0]) {
        case "Mondays":
            curArray[1] = myMondaysTotal;
            break;
        case "Tuesdays":
            curArray[1] = myTuesdaysTotal;
            break;
        //........
    }
}

现场测试用例

于 2013-04-17T11:42:09.980 回答
0
for(var i=0;i<7;i++) 
    myDaysComparisonData[i][1] = window["my"+myDaysComparisonData[i][0]+"Total"];
于 2013-04-17T12:26:40.520 回答
-3

我想这就是你的意思?

myDaysComparisonData['Mondays'] = myMondaysTotal;
于 2013-04-17T11:41:10.080 回答