Javascript 如何筛选有时值为null的数组?
我想过滤一个数组,只获取HasAccess设置为false的值。唯一的问题是HasAccess并不总是存在。有时设置为空。我该怎么办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
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
。另外,如果您对数字进行真实测试。设置
后接和&
,则您知道它不是