javascript - 数组 拼接 Pop 移位读取

标签 javascript arrays push splice

我像这样创建一个数组

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/

相关文章:

javascript - Bootstrap 3 默认验证插件

javascript - jquery 在即时创建时在 iframe 中运行

github - Github 推送到 fork 仓库

javascript - js - 声明多维数组+推送键和值

push - NetBeans 非快进更新

javascript - 递归计算出现次数

javascript - 正则表达式 - 不包含字符

C++接收错误,该函数未在此范围内声明

java - 如何将这个增强循环转换为 for 循环

ios - 从组内容创建字符串数组