嘿,我正在尝试使用过滤器从数组中删除对象,但似乎无法正常工作。
当我从过滤器中删除e.serverID!=='8:0:0'但我试图用服务器ID对其进行过滤时,它会起作用。
我只是想知道是否有人对为什么有任何想法?
var MyUsers = [{
id: 1,
url: 'https://LinkHere.com/#1',
authorID: 12345,
username: 'MyUserName',
isadmin: true,
serverID: '8:0:0',
serverIP: 'MyServerIP1'
},
{
id: 2,
url: 'https://LinkHere.com/#2',
authorID: 12345,
username: 'MyUserName',
isadmin: true,
serverID: '8:0:0',
serverIP: 'MyServerIP1'
},
{
id: 3,
url: 'https://LinkHere.com/#3',
authorID: 67890,
username: 'TestUser',
isadmin: false,
serverID: '8:0:0',
serverIP: 'MyServerIP2'
}
]
console.log('My user befor filter', MyUsers);
MyUsers = MyUsers.filter(e => e.authorID !== 12345 && e.username !== 'MyUserName' && e.serverID !== '8:0:0');
setTimeout(console.log('My user after filter', MyUsers), 1000)
答案 0 :(得分:0)
通过过滤器功能的定义,返回所有符合指定条件的元素。由于数组中的任何元素均未满足e.authorID !== 12345 && e.username !== 'MyUserName' && e.serverID !== '8:0:0'
,因此不会返回任何内容。
删除e.serverID !== '8:0:0'
时,返回的最后一个元素将满足条件。