Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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 函数,如果属性为true,则从对象数组返回指定值_Javascript_Function_Multidimensional Array_Javascript Objects - Fatal编程技术网

Javascript 函数,如果属性为true,则从对象数组返回指定值

Javascript 函数,如果属性为true,则从对象数组返回指定值,javascript,function,multidimensional-array,javascript-objects,Javascript,Function,Multidimensional Array,Javascript Objects,我正在处理一个挑战:给定一个对象数组,编写一个函数admin,返回标记为“admin”的所有用户的姓名和出生日期 当我运行测试时,它返回为未定义,我不知道为什么。我正在寻找一个预期的输出: 管理员(用户) 如果您只想将它们记录到控制台,只需使用 const用户=[ { 名字:“荷马”, 角色:'办事员', dob:'12/02/1988', 管理员:错 }, { 名字:'丽莎', 角色:'工作人员', 日期:1965年1月30日, 管理员:错 }, { 姓名:'Marge', 角色:'关联

我正在处理一个挑战:给定一个对象数组,编写一个函数admin,返回标记为“admin”的所有用户的姓名和出生日期

当我运行测试时,它返回为未定义,我不知道为什么。我正在寻找一个预期的输出: 管理员(用户)


如果您只想将它们记录到控制台,只需使用

const用户=[
{
名字:“荷马”,
角色:'办事员',
dob:'12/02/1988',
管理员:错
}, 
{
名字:'丽莎',
角色:'工作人员',
日期:1965年1月30日,
管理员:错
}, 
{
姓名:'Marge',
角色:'关联',
dob:'09/10/1980',
管理员:是的
}
]
函数管理(myArray){
myArray.forEach(用户=>{
if(user.admin)console.log(`Name:${user.Name},DOB:${user.DOB}`);
});
}

管理员(用户)感谢您消除了将属性打印到屏幕和使用array.map技术实际返回所需属性之间的差异。我现在只编写了几周的代码,看到各种内置函数可以以不同的方式显示数据是很酷的。我感谢你的反馈和指导。
const users = [
  {
    name: 'Homer', 
    role: 'clerk', 
    dob: '12/02/1988',
    admin: false 
  }, 
  {
    name: 'Lisa', 
    role: 'staff', 
    dob: '01/30/1965',
    admin: false 
  }, 
  {
    name: 'Marge', 
    role: 'associate', 
    dob: '09/10/1980',
    admin: true 
  }
]

function admin(myObj) {
  function groupBy(myObj, prop) {
  return myObj.reduce(function (acc, obj) {
    let key = obj[prop]
    if (!acc[key]) {
      acc[key] = []
    }
    acc[key].push(obj)
    return acc
    }, {});
  }
  let trueAdmin = groupBy(myObj, 'admin');
  console.log(trueAdmin[true].map(({name, dob}) => `Name: ${name}
Dob: ${dob}
`).join(`
`));
}

admin(users);
// Name: Marge 
// Dob: 09/10/1980