gpt4 book ai didi

javascript - 如何过滤有时值为 null 的数组?

转载 作者:行者123 更新时间:2023-11-30 09:16:07 25 4
gpt4 key购买 nike

我想过滤一个数组,只获取 HasAccess 设置为 false 的值。唯一的问题是 HasAccess 并不总是存在。有时设置为空。我该如何管理?

    0:{
ClientCodeRegional: (2) ["29000-A", "122214"]
CreatedUpdatedBy: null
Email: "testuserthree@for.deletion"
Id: "11ad1dfb-3cd6-4db6-87a9-8063bb12504d"
Settings: {
CsmPassword: ""
CsmUser: ""
HasAccess: false
IsAdmin: true
IsInternal: false
IsLocked: true
MarketAreaCode: ""
Role: "Administrator"
Updated: null
UpdatedBy: null
UserId: "11ad1dfb-3cd6-4db6-87a9-8063bb12504d"
}
}

我尝试了很多不同的东西,但这就是我现在得到的。

const users = result.data.filter((number) => {

//number.Settings != null
if (typeof number.Settings == "null") {
return true;
} else {
return number;
}
})

最佳答案

如果您想要获取定义了 Settings.HasAccess 且为 false 的所有条目,请使用逻辑 and ( &&) 先检查settings对象是否存在,然后使用===比较HasAccess属性和false

仅当 Settings 存在且 HasAccess 属性设置为 false 时,此处 true 才会返回。

const result = {
data: [
{ Settings: { HasAccess: true }, a: 1 },
{ Settings: { HasAccess: false }, a: 2 },
{ Settings: { }, a: 3 },
{ a: 4 }
]
};

const users = result.data.filter(item => {
return item.Settings && item.Settings.HasAccess === false;
})

console.log(users);

如果你想获得所有HasAccess未定义或为假的结果,请使用 or 代替 (||) 和 not运算符(!)。

如果出现以下情况,将返回 true:

  • 设置不存在
  • HasAccess 属性未定义
  • HasAccess 存在但其值为假(null、undefined、false)

const result = {
data: [
{ Settings: { HasAccess: true }, a: 1 },
{ Settings: { HasAccess: false }, a: 2 },
{ Settings: { }, a: 3 },
{ a: 4 }
]
};

const users = result.data.filter(item => {
return !item.Settings || !item.Settings.HasAccess;
})

console.log(users);

关于javascript - 如何过滤有时值为 null 的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55001297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com