我正在尝试过滤一个对象数组,并根据条件将disabled设置为true。
allUsers: [
{
id: "id1",
name: "David",
prof: "programmer",
tasksNumber: 4,
isAtWork: true,
disabled: false,
},
{
id: "id2",
name: "Jessy",
prof: "programmer",
tasksNumber: 6,
isAtWork: true,
disabled: false,
},
...
...
]然后在一个方法中,我试图根据条件过滤allUsers,但在控制台日志中我总是看到所有用户,所以过滤和映射都不起作用:
editUsers(){
if (some condition here) {
this.aaUsers = this.allUsers.filter(user => user.prof === "designer" ||
!tasksAllowedNumbers.includes(user.tasksNumber)).map(user=> user.disabled = true)
}
...
}我在stackoverflow上见过很多例子,但都没有解决这个问题。因此,目标是基于if条件过滤不匹配的职业,并且如果禁用数组不包括users tasksNumber,则将user tasksAllowedNumbers设置为true。如何才能正确地实现它?
发布于 2020-07-08 16:45:08
map函数应该返回一个对象。请找到下面的代码。
let allUsers = [
{
id: "id1",
name: "David",
prof: "programmer",
tasksNumber: 1,
isAtWork: true,
disabled: false,
},
{
id: "id2",
name: "Jessy",
prof: "programmer",
tasksNumber: 6,
isAtWork: true,
disabled: false,
},{
id: "id3",
name: "David3",
prof: "designer",
tasksNumber: 3,
isAtWork: true,
disabled: false,
},
{
id: "id4",
name: "David4",
prof: "programmer",
tasksNumber: 4,
isAtWork: true,
disabled: false,
},{
id: "id2",
name: "David2",
prof: "programmer",
tasksNumber: 2,
isAtWork: true,
disabled: false,
}]
users = allUsers.filter(user => user.prof === 'designer' || ![1, 4].includes(user.tasksNumber)).map(user => { user.disabled = true; return user });
console.log('allUsers = ', allUsers);
https://stackoverflow.com/questions/62790695
复制相似问题