You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Javascript如何从JSON数组中筛选指定键值对生成新数组

问题原因

你之前用filter方法没达到效果是因为对方法的定位搞混了:

  • Array.prototype.filter()的作用是筛选数组中符合条件的完整元素,只会保留/删除整个对象,不会修改对象内部的字段结构
  • 你需要的是对每个元素的结构做转换,应该使用Array.prototype.map()方法,它可以遍历原数组的每一项,返回你自定义的新结构,最终组成新数组。

实现代码

基础写法(适合初学者理解)

let filteredCourses = courseList.map(function(course) {
  return {
    Title: course.Title,
    Faculty: course.Faculty,
    Openings: course.Openings
  }
})

简写版本(利用解构赋值,后续维护更方便)

如果后续需要增减保留的字段,直接修改解构的字段列表即可:

let filteredCourses = courseList.map(({ Title, Faculty, Openings }) => ({
  Title, Faculty, Openings
}))

扩展场景

如果你同时需要先过滤符合条件的课程(比如只要仍在开放状态、有空位的课程),可以链式调用filter和map:

let filteredCourses = courseList
  // 先筛选符合条件的完整课程对象
  .filter(course => course.Status === 'Open' && course.Openings > 0)
  // 再提取需要的字段
  .map(({ Title, Faculty, Openings }) => ({ Title, Faculty, Openings }))

内容的提问来源于stack exchange,提问作者EmotionalToast

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:54:03