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方法返回的数组。