首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建和读取javascript对象来保存以下数据结构?

如何创建和读取javascript对象来保存以下数据结构?
EN

Stack Overflow用户
提问于 2012-01-22 21:44:21
回答 1查看 370关注 0票数 1

我需要创建以下数据结构:

代码语言:javascript
复制
userid, onlinetime, offlinetime

我需要在列表中重复输入用户id。

如下所示:

代码语言:javascript
复制
userid: 1, onlinetime: 11:10:30, offlinetime: 11:18:12
userid: 1, onlinetime: 11:14:14, offlinetime: 11:52:41
userid: 2, onlinetime: 8:08:14, offlinetime: 1:15:00

如何创建此对象或列表?

如何读取此对象或列表?(我需要比较在线和离线时间。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-22 22:01:30

您可以创建具有userId和connectionTimes属性的用户对象,并将其添加到用户数组中,如下所示:

代码语言:javascript
复制
function createUsers()
{
    var users = [];

    users[0] = {
        userId: 1,
        connectionTimes:
            [
                {onlineTime:"11:10:30", offlineTime:"11:18:12"},
                {onlineTime:"11:14:14", offlineTime:"11:52:41"}
            ]
    }

    users[1] = {
        userId: 2,
        connectionTimes: 
            [
                {onlineTime:"8:08:14", offlineTime:"1:15:00"}
            ]
    }   

    return users;
}

一旦有了用户数组,就可以遍历它并通过比较userId属性找到一个用户:

代码语言:javascript
复制
var users = createUsers();

for (var i=0;i<users.length;i++)
{
    if (users[i].userId === 2)
    {
        for (var j=0;j<users[i].connectionTimes.length;j++)
        {
            alert("onlineTime: " + users[i].connectionTimes[j].onlineTime + ", " + "offlineTime: " + users[i].connectionTimes[j].offlineTime);
        }   
    }
}

编辑

以下是基于createUser和getConnectionTime函数的代码的分解版本:

代码语言:javascript
复制
function getConnectionTime(onTime, offTime)
{
    return {onlineTime: onTime, offlineTime: offTime};
}

function createUser(uid, connTimes)
{
    return {userId: uid, connectionTimes: connTimes};
}

var users = [];

var connTimes = [];
connTimes.push(getConnectionTime("11:10:30", "11:18:12"));
connTimes.push(getConnectionTime("11:14:14", "11:52:41"));
users.push(createUser(1, connTimes));

connTimes = [];
connTimes.push(getConnectionTime("8:08:14", "1:15:00"));
users.push(createUser(2, connTimes));

for (var i=0;i<users.length;i++)
{
    if (users[i].userId === 2)
    {
        for (var j=0;j<users[i].connectionTimes.length;j++)
        {
            alert("onlineTime: " + users[i].connectionTimes[j].onlineTime + ", " + "offlineTime: " + users[i].connectionTimes[j].offlineTime);
        }   
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8961503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档