Javascript 如何筛选有时值为null的数组?

Javascript 如何筛选有时值为null的数组?,javascript,reactjs,Javascript,Reactjs,我想过滤一个数组,只获取HasAccess设置为false的值。唯一的问题是HasAccess并不总是存在。有时设置为空。我该怎么办 0:{ ClientCodeRegional: (2) ["29000-A", "122214"] CreatedUpdatedBy: null Email: "testuserthree@for.deletion" Id: "11ad1dfb-3cd6-4db6-87a9-8063bb12504d" Settings: { CsmPa

我想过滤一个数组,只获取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;
          }
          })

您可以尝试以下方法:

if (number && number.Settings) {
  return number;
} else {
  return true;
}

您可以尝试以下方法:

if (number && number.Settings) {
  return number;
} else {
  return true;
}
我想过滤一个数组,只获取HasAccess所在的值 设置为false,有时设置为null

只需检查
设置&(HasAccess==false)

let arr=[{ClientCodeRegional:[“29000-A”,“122214”],CreatedUpdatedBy:null,电子邮件:testuserthree@for.deletion,Id:“11ad1dfb-3cd6-4db6-87a9-8063bb12504d”,设置:{CsmPassword:,CsmUser:,HasAccess:false,IsAdmin:true,IsInternal:false,IsLocked:true,MarketAreaCode:,角色:“管理员”,更新:null,更新人:null,用户Id:“11ad1dfb-3cd6-4db6-87a9-8063bb12504d”,},{ClientCodeRegional:[“29000-A”,“122214”],CreatedUpdatedBy:null,电子邮件:”testuserthree@for.deletion,Id:“11AD1DBB-3cd6-4db6-87a9-8063bb12504d”,设置:{CsmPassword:,CsmUser:,HasAccess:null,IsAdmin:true,IsInternal:false,IsLocked:true,MarketAreaCode:,角色:“管理员”,已更新:null,更新人:null,用户ID:“11ad1dfb-3cd6-4db6-87a9-8063bb12504d”},{ClientCodeRegional:[“29000-A”,“122214”],CreatedUpdatedBy:null,电子邮件:testuserthree@for.deletion,Id:“11ad1dfb-3cd6-4db6-87a9-8063bb12504d”,设置:{CsmPassword:,CsmUser:,//HasAccess:null,
IsAdmin:true,IsInternal:false,IsLocked:true,MarketAreaCode:,角色:“管理员”,更新:null,更新人:null,用户ID:“11AD1DBB-3cd6-4db6-87a9-8063bb12504d”}]
让op=arr.filter(({Settings}=>Settings&&(Settings.HasAccess==false))
控制台日志(op)
我想过滤一个数组,只获取HasAccess所在的值 设置为false,有时设置为null

只需检查
设置&(HasAccess==false)

let arr=[{ClientCodeRegional:[“29000-A”,“122214”],CreatedUpdatedBy:null,电子邮件:testuserthree@for.deletion,Id:“11ad1dfb-3cd6-4db6-87a9-8063bb12504d”,设置:{CsmPassword:,CsmUser:,HasAccess:false,IsAdmin:true,IsInternal:false,IsLocked:true,MarketAreaCode:,角色:“管理员”,更新:null,更新人:null,用户Id:“11ad1dfb-3cd6-4db6-87a9-8063bb12504d”,},{ClientCodeRegional:[“29000-A”,“122214”],CreatedUpdatedBy:null,电子邮件:”testuserthree@for.deletion,Id:“11AD1DBB-3cd6-4db6-87a9-8063bb12504d”,设置:{CsmPassword:,CsmUser:,HasAccess:null,IsAdmin:true,IsInternal:false,IsLocked:true,MarketAreaCode:,角色:“管理员”,已更新:null,更新人:null,用户ID:“11ad1dfb-3cd6-4db6-87a9-8063bb12504d”},{ClientCodeRegional:[“29000-A”,“122214”],CreatedUpdatedBy:null,电子邮件:testuserthree@for.deletion,Id:“11ad1dfb-3cd6-4db6-87a9-8063bb12504d”,设置:{CsmPassword:,CsmUser:,//HasAccess:null,
IsAdmin:true,IsInternal:false,IsLocked:true,MarketAreaCode:,角色:“管理员”,更新:null,更新人:null,用户ID:“11AD1DBB-3cd6-4db6-87a9-8063bb12504d”}]
让op=arr.filter(({Settings}=>Settings&&(Settings.HasAccess==false))

console.log(op)
如果要获取定义了
设置的所有条目。HasAccess
且为
false
,请使用逻辑and(
和&
)首先检查
设置
对象是否存在,然后使用
==
HasAccess
属性与
false
进行比较

只有当
Settings
存在并且
HasAccess
属性设置为false时,才会返回
true

const结果={
数据:[
{设置:{HasAccess:true},a:1},
{设置:{HasAccess:false},a:2},
{设置:{},a:3},
{a:4}
]
};
const users=result.data.filter(项=>{
返回item.Settings&&item.Settings.HasAccess==false;
})

console.log(用户)
如果要获取定义了
设置。HasAccess
且为
false
的所有条目,请首先使用逻辑and(
&&
)检查
设置
对象是否存在,然后使用
==
HasAccess
属性与
false
进行比较

只有当
Settings
存在并且
HasAccess
属性设置为false时,才会返回
true

const结果={
数据:[
{设置:{HasAccess:true},a:1},
{设置:{HasAccess:false},a:2},
{设置:{},a:3},
{a:4}
]
};
const users=result.data.filter(项=>{
返回item.Settings&&item.Settings.HasAccess==false;
})

console.log(用户)
如果设置==“null”,则返回true,这意味着如果该元素为“null”,则不过滤该元素,并且“null”与null不相同。值得注意的是,
typeof null
会导致
“object”
。没有值
x
实际上有
typeof x==“null”
@chriss-OP正在使用
typeof
。Sry误读了,但感谢你们两位指出,总是返回值的另一个问题,即不过滤,仍然有效。如果设置==“null”,则返回true,这意味着如果元素为“null”,则保持该元素不被过滤掉“null”与null不同。值得注意的是,
typeof null
导致
“object”
。没有任何值
x
实际具有
typeof x==“null”“
@chriss-OP正在使用
typeof
。Sry读错了,但感谢你们两位指出,始终返回值的其他问题,即不过滤,仍然有效
number.Settings!=”null'
检查它是否是字符串
'null'
,而不是值
null
。另外,如果您对
数字进行真实测试。设置
后接
和&
,则您知道它不是