Javascript JS-Discord Bot从阵列中删除特定ID

Javascript JS-Discord Bot从阵列中删除特定ID,javascript,discord,Javascript,Discord,你好,这是密码 $bot.on("presenceUpdate", (oldMember, newMember) => { if(oldMember.presence.status !== newMember.presence.status){ const memberID = newMember.user.id; if(newMember.user.presence.status === "online"){

你好,这是密码

$bot.on("presenceUpdate", (oldMember, newMember) => {
  if(oldMember.presence.status !== newMember.presence.status){
    const memberID = newMember.user.id;
    if(newMember.user.presence.status === "online"){      
      membersOnline.push(memberID);
      console.log("-------online--------");
      console.log(membersOnline);
    }else
    if(newMember.user.presence.status === "offline"){
      membersOnline.filter(e => e !== memberID)
      console.log("-------offline--------");
      console.log(membersOnline);
    }
      console.log(`${newMember.user.username} is now ${newMember.presence.status}`);

  }
});
原因是身份证没有被删除

----离线--[]

-l-RACE-l-现在处于脱机状态

----在线--['20328781833057752']

-l-RACE-l-现在在线

----脱机--['203287818330570752']

-l-RACE-l-现在处于脱机状态

----在线--['203287818330570752'、'203287818330570752']

-l-RACE-l-现在在线

filter方法创建一个包含所有通过的元素的新数组 由提供的函数实现的测试。

方法Array.prototype.filter不更改原始数组。因此,简单的解决方案是:

membersOnline = membersOnline.filter(e => e !== memberID);

我相信filter方法会返回一个数组,因此在代码中可以运行该方法,但不要将返回值赋给变量。请参阅下面的代码

$bot.on("presenceUpdate", (oldMember, newMember) => {
    if(oldMember.presence.status !== newMember.presence.status){
      const memberID = newMember.user.id;
    }
    if(newMember.user.presence.status === "online"){      
        membersOnline.push(memberID);
        console.log("-------online--------");
        console.log(membersOnline);
    } else {
        if(newMember.user.presence.status === "offline"){
            var newOnlineMembers = membersOnline.filter(e => e !== memberID);  // add new variable for filtered array
            console.log("-------offline--------");
            console.log(newOnlineMembers); // output new variable
        }
        console.log(`${newMember.user.username} is now ${newMember.presence.status}`);
    }
});

membersOnline=membersOnline.filtere=>e!==成员ID;^TypeError:分配给常量变量。在您第一次声明membersOnline变量的行中,更改常量membersOnline以让membersOnline谢谢,这是我的错误。。。几个小时前尝试过你的解决方案,现在它可以用了!这样我将有两个阵列,一个不断增长,一个没有离线。我想你已经知道了,但你不必创建新的阵列。您可以将上一个数组重新分配给filter方法返回的数组。