Javascript 从另一个数组按索引返回对象数据
如果索引与另一个数组匹配,从数组返回数据的最佳方法是什么 我有一组用户:Javascript 从另一个数组按索引返回对象数据,javascript,Javascript,如果索引与另一个数组匹配,从数组返回数据的最佳方法是什么 我有一组用户: Collection [Map] { '531592097837613058' => {} '460281004972572672' => {} } 我有一个允许ID的数组: const allowedRoles = ['523928765865394211']; 我想要实现的是返回集合的对象,其中索引匹配AllowedRoles中的某个索引。从理论上讲,这很简单,但我误解了收集方法。如果你有一个用户地
Collection [Map] {
'531592097837613058' => {}
'460281004972572672' => {}
}
我有一个允许ID的数组:
const allowedRoles = ['523928765865394211'];
我想要实现的是返回集合的对象,其中索引匹配AllowedRoles中的某个索引。从理论上讲,这很简单,但我误解了收集方法。如果你有一个用户地图(即
userMap
),以及一个你想过滤用户的允许角色的数组,那么获得新用户集的一个简单方法是:
迭代userMap
的键/值项,并
如果当前输入键存在于allowedRoles
数组中,则将用户值包括在结果数组中
这可以表示为:
const userMap={
'531592097837613058':{用户:“bob”},
'460281004972572672':{user:“bill”},
'124':{用户:“乔”},
'523928765865394211':{用户:“sam”}
}
constAllowedRoles=['523928765865394211','124'];
常量allowedUsers=[];
/*迭代用户映射的条目*/
for(Object.entries(userMap))的常量[key,value]{
/*如果允许的角色中存在用户映射的键,则添加值(用户)
给允许的用户*/
if(allowedRoles.indexOf(key)!=-1){
allowedUsers.push(值);
}
}
console.log(允许用户)代码>如果您有一个用户地图(即userMap
),以及一个要筛选用户的allowedRoles
数组,那么获取新用户集合的简单方法是:
迭代userMap
的键/值项,并
如果当前输入键存在于allowedRoles
数组中,则将用户值包括在结果数组中
这可以表示为:
const userMap={
'531592097837613058':{用户:“bob”},
'460281004972572672':{user:“bill”},
'124':{用户:“乔”},
'523928765865394211':{用户:“sam”}
}
constAllowedRoles=['523928765865394211','124'];
常量allowedUsers=[];
/*迭代用户映射的条目*/
for(Object.entries(userMap))的常量[key,value]{
/*如果允许的角色中存在用户映射的键,则添加值(用户)
给允许的用户*/
if(allowedRoles.indexOf(key)!=-1){
allowedUsers.push(值);
}
}
console.log(允许用户)
假设用户
是您的用户ID字典/地图,有两种方法可以实现您的目标:
// The functional way
result = allowedRoles.map(id => users[id]).filter(userData => userData != undefined)
// With loops
result = []
for(id of allowedRoles) {
if(users[id] != undefined) result.push(users[id])
}
假设users
是您的用户ID字典/地图,有两种方法可以实现您的目标:
// The functional way
result = allowedRoles.map(id => users[id]).filter(userData => userData != undefined)
// With loops
result = []
for(id of allowedRoles) {
if(users[id] != undefined) result.push(users[id])
}
如果您知道allowedRoles
中的所有ID都存在于集合中
,则只需映射allowedRoles
并进行查找即可。如果allowedRoles中可能存在其他ID,请首先筛选它们:
let Collection=新映射([
['531592097837613058',{姓名:“弗雷德”}],
['523928765865394211',{名字:“巴尼”}]
]);
const allowedRoles=['523928765865394211'];
让角色=允许的角色
//.filter(item=>Collection.has(item))//如果需要
.map(项=>Collection.get(项))
console.log(roles)
如果您知道allowedRoles
中的所有ID都存在于集合中
,您只需映射allowedRoles
并进行查找即可。如果allowedRoles中可能存在其他ID,请首先筛选它们:
let Collection=新映射([
['531592097837613058',{姓名:“弗雷德”}],
['523928765865394211',{名字:“巴尼”}]
]);
const allowedRoles=['523928765865394211'];
让角色=允许的角色
//.filter(item=>Collection.has(item))//如果需要
.map(项=>Collection.get(项))
console.log(roles)
使用map
为此,在allowedRoles
数组上,并在用户集合上使用filter
。首先用文字描述执行此操作的每个步骤。尽可能详细。可能重复使用映射
,通过允许角色
数组,并在用户集合上使用过滤器
。首先用文字描述执行此操作的每个步骤。尽可能详细。可能重复