Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从另一个数组按索引返回对象数据_Javascript - Fatal编程技术网

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
    。首先用文字描述执行此操作的每个步骤。尽可能详细。可能重复使用
    映射
    ,通过
    允许角色
    数组,并在用户集合上使用
    过滤器
    。首先用文字描述执行此操作的每个步骤。尽可能详细。可能重复