我目前正在使用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>");
}
}
});
有人能指出我正确的方向或协助此事吗?
编辑(更新)的
亲切的问候。
答案 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
}
});