首页 > 解决方案 > 从对象数组中仅获取一个字段值

问题描述

const subjects = [
  {
    id:1,
    class:"class 5",
    sub:"social"
  },
  {
    id:2,
    class:"class 6",
    sub:"English"
  },
  {
    id:3,
    class:"class 5",
    sub:"Physics"
  }
]

const students = [
  {
    id:1,
    name:"john",
    attendedSubject:[1]
  },
  {
    id:2,
    name:"james",
    attendedSubject:[1,2]
  },
  {
    id:3,
    name:"jack",
    attendedSubject:[2]
  },
]

如何让所有学生的班级 === 班级 5 和参加的主题子 ID 即我有一个单选按钮,用户将在其中选择班级(例如班级 5)和一个下拉列表,其中所有子将显示在班级所在的下拉列表中=== 第 5 类,基于类和子如何获得具有第 5 类和特定主题的学生 例如:选定的类是第 5 类,选择的子是物理,输出 obj 应该是 c

const result = [{
  id:1,
  name:"john",
  attendedSubject:[1]
},
{
  id:2,
  name:"james",
  attendedSubject:[1,2]
}]

标签: javascriptarrays

解决方案


你会想要有2个循环。

  1. 查找基于 X、Y 和 Z 的类
  2. 根据科目 X 查找学生。
const queryClass = subjects.find(s => s.class === 'class 6' && s.sub === 'English')
const output = students.filter(s => s.attendedSubject.includes(queryClass.id))
console.log(output)

输出:


[
  { id: 2, name: 'james', attendedSubject: [ 1, 2 ] },
  { id: 3, name: 'jack', attendedSubject: [ 2 ] }
]


推荐阅读