我像这样创建一个数组
var membersList = $('#chatbox_members' , avacweb_chat.doc.body).find('li');
var onlineUsers = [];
var offLineUsers = [];
for(var i =0;i<membersList.length;i++){
var name = $(membersList[i]).text().replace("@","");
onlineUsers.push(name);
}
alert(onlineUsers);
listedUsers
会出现这样的结果 [Mr.EasyBB,Tonight,Tomorrow,Gone];
问题是我是否使用两个 for 循环,一个在 setInterval 外部,一个在 setInterval 内部进行比较 -
var membersList = $('#chatbox_members' , _chat.doc.body).find('li');
var onlineUsers = [];
var offLineUsers= [];
for(var i =0;i<membersList.length;i++){
var name = $(membersList[i]).text().replace("@","");
onlineUsers.push(name);
}
var int = setInterval(function() {
var newMember = ('#chatbox_members' , _chat.doc.body).find('li');
for(var i =0;i<newMember.length;i++){
var name = $(newMember[i]).text().replace("@","");
offLineUsers.push(name);
}
然后会得到:
onlineUsers = [Mr.EasyBB,Tonight,Tomorrow,Gone];
offLineUsers = [Mr.EasyBB,Tonight];
因此,为了获得离线用户,我想基本上将 onlineUsers
替换为 offLineUsers
,然后应该返回 Tomorrow,Gone
。虽然我知道对象没有替换功能,但我该怎么办?
我认为 splice 函数不起作用,因为您需要参数,并且 pop 或 shift 是数组的开头和结尾。
最佳答案
for(var i = 0 ; i < offLineUsers.length ; i++)
{
for(var j = 0 ; j < onlineUsers.length ; j++)
{
if(onlineUsers[j] == offLineUsers[i])
{
onlineUsers.splice(j,1);
}
}
}
试试这个片段。
关于javascript - 数组 拼接 Pop 移位读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16780544/