javascript 如何遍历对象值

s2j5cfk0  于 2023-05-05  发布在  Java
关注(0)|答案(2)|浏览(131)
const schoolObj = {
  class10: { studentName: John, result: pass },
  class11: { studentName: Alis, result: pass },
  class12: { studentName: Nick, result: fail },
};

如果结果通过,如何创建studentName列表。class10,11,12都是动态值,我一直在纠结如何在迭代中访问这个动态值。
我想要像student = [John, Alis]数组的结果

ttp71kqs

ttp71kqs1#

过滤对象值,以便只保留已通过考试的学生。然后Mapstudent对象,以便获得包含其名称的数组。

const schoolArr = {
  class10: { studentName: 'John', result: 'pass' },
  class11: { studentName: 'Alis', result: 'pass' },
  class12: { studentName: 'Nick', result: 'fail' }
};

console.log(
  Object.values(schoolArr)
    .filter(({ result }) => result === 'pass')
    .map(({ studentName }) => studentName)
)
vyswwuz2

vyswwuz22#

这是另一种解决方案。

const schoolArr = {
  class10: { studentName: 'John', result: 'pass' },
  class11: { studentName: 'Alis', result: 'pass' },
  class12: { studentName: 'Nick', result: 'fail' }
};

const passStudents = Object.values(schoolArr).reduce((acc, { studentName, result }) => {
  if (result === 'pass') {
    acc.push(studentName);
  }
  return acc;
}, []);

console.log(passStudents);

相关问题