对于多维数组中的每个数组

时间:2015-12-14 16:33:20

标签: javascript jquery arrays express

我目前正在使用node.js,Express和JS / Jquery开发一个应用程序。

我遇到了一个问题,我想根据MD数组中包含的数组将元素附加到网页。

因此,如果每个数组只有6个数组,那么根据我设置的一组要求改变它的外观。

但附加元素到处都是,我在网页上获得了复制值,我只想要它们一次。

例如:

[ [ '477', 'Test User', '487', 'online', 'ANSWER' ],
  [ '487', 'Test User', '477', 'online', 'ANSWER' ],
  [ '488', 'Test User', '490', 'online', 'ANSWER' ],
  [ '490', 'Test User', '488', 'online', 'ANSWER' ] ]

因此MD阵列中有4个阵列,所以我想在我的网页上找到的只有477,487,488& 490因此我为什么要尝试每个阵列。

但是它复制了所有这些,所以我认为每个都可能是最好的选择,但我很难让它为每个阵列工作。

我已经看过其他几个问题,但未能取得任何成功的工作。

当前代码

socket.on("eventsRegister", function (regisdata) {
    for(var i in regisdata)
    {
                         $presence.append('<div class="col-md-2 md tile">\
                                <h6>\
                                    <b>'+ regisdata[i][0] +'</b>\
                                    </h6>\
                                    </div>');
    if (regisdata[i][0] && regisdata[i][3] === "online") {
        $("div[class*='tile']:not(.answer .noanswer .ring .hangup):contains('" + regisdata[i][0] + "')").removeClass("ring").css("background-color", "#78ff4d").html("<h6><img  src='../images/online.png'> <b>" + regisdata[i][0] + "</b></h6><p></p>");
    } else if (regisdata[i][0] && regisdata[i][3] === "offline") {
        $("div[class*='tile']:not(.answer .noanswer .ring .hangup):contains('" + regisdata[i][0] + "')").removeClass("ring").css("background-color", "white").html("<h6><img  src='../images/offline.png'> <b>" + regisdata[i][0] + "</b></h6><p></p>");
    }
}
});

有人能指出我正确的方向或协助此事吗?

编辑(更新)的

亲切的问候。

1 个答案:

答案 0 :(得分:1)

我不太确定你到底想要什么,但这里什么都没有:

for(var key in MDarray)
{
    var subarray = MDarray[key];

    // Now subarray = [ '477', 'Test User', '487', 'online', 'ANSWER' ]
    // And subarray[0] = '477'

    // To skip some array inside the MDarray, you can do
    // if(subarray[0] === '477') { continue; } for example

    // You can also loop the subarray with 
    // for(var key2 in subarray) { var subarrval = subarray[key]; }
}

简化为:

for(var key in MDarray)
{
    var online = MDarray[key][3];
    // append online status code here
}

您的完整代码应如下所示:

socket.on("eventsRegister", function (regisdata) 
{
    for(var key in regisdata)
    {
        var data = regisdata[key];
        var onlinestatus = data[3];

        // append onlinestatus somehow
    }
});