多维数组的格式

时间:2013-10-14 15:14:41

标签: javascript arrays

我正在尝试创建一个多维数组并且稍微停留在其格式上:

activity[currentAccount] = {
        date: aDate,
        id: aID,
        ip: aIP,
        vid: aVID,
        actor: aActor,
        action: aAction,
        data: aActionData
    };

目前在我的脚本中,它将所有这些数据推送到数组。

但是,currentAccount对于30条记录可能是相同的,所以我需要能够像这样访问它:activity['1234']['action'][0]< - 这是帐户1234的第一组值在阵列中。

我是否需要更改存储初始数据的方式或仅需要以特定方式访问它?

谢谢

2 个答案:

答案 0 :(得分:0)

您应该将activity[currentAccount]设置为一个对象数组。

这样的事情:

activity[currentAccount] = [
    {
        date: aDate[0],
        id: aID[0],
        ip: aIP[0],
        vid: aVID[0],
        actor: aActor[0],
        action: aAction[0],
        data: aActionData[0]
    },
    {
        date: aDate[1],
        id: aID[1],
        ip: aIP[1],
        vid: aVID[1],
        actor: aActor[1],
        action: aAction[1],
        data: aActionData[1]
    }
];

然后您可以访问它:activity[currentAccount][1].action

答案 1 :(得分:0)

你应该像这样存储

activity[currentAccount] = [];
first = {
        date: aDate,
        id: aID,
        ip: aIP,
        vid: aVID,
        actor: aActor,
        action: aAction,
        data: aActionData
    };

activity[currentAccount][0] = first;    //either
activity[currentAccount].push(first);   //or

要访问它,请使用activity['1234'][0]['action']而不是activity['1234']['action'][0],因为活动有多个值而不是操作。

您也可以使用对象容器({}),这将允许您使用有效的标识符名称。但是因为你要求索引像0,1,2,3 .. (你不能使用push和length)。