js使用数组重组方法返回课程名称及返回课程数量

// 返回每个系列名称,及每个系列一共有多少个课(lesson 的总数);

问题出现的环境背景及自己尝试过哪些方法

相关代码

const Series = [{
  name: 'Web',
  courses: [{
    name: 'HTML',
    lessons: [{
      name: 'HTML Lesson 1'
    },{
      name: 'HTML Lesson 2'
    },{
      name: 'HTML Lesson 3'
    }]
  },{
    name: 'CSS',
    lessons: [{
      name: 'CSS Lesson 1'
    },{
      name: 'CSS Lesson 2'
    },{
      name: 'CSS Lesson 3'
    },{
      name: 'CSS Lesson 4'
    }]
  },{
    name: 'JavaScript',
    lessons: [{
      name: 'JavaScript Lesson 1'
    },{
      name: 'JavaScript Lesson 2'
    }]
  }]
},{
  name: 'PHP',
  courses: [{
    name: 'Linux',
    lessons: [{
      name: 'Linux Lesson 1'
    },{
      name: 'Linux Lesson 2'
    }]
  },{
    name: 'MySQL',
    lessons: [{
      name: 'MySQL Lesson 1'
    },{
      name: 'MySQL Lesson 2'
    },{
      name: 'MySQL Lesson 3'
    },{
      name: 'MySQL Lesson 4'
    }]
  },{
    name: 'Nginx',
    lessons: [{
      name: 'Nginx Lesson 1'
    },{
      name: 'Nginx Lesson 2'
    },{
      name: 'Nginx Lesson 3'
    },{
      name: 'Nginx Lesson 4'
    }]
  }]
}]

function output3(Series){
 
  // ...
}
output3(Series)

题目来源及自己的思路

aitschool
求解答和思路

阅读 1.7k
2 个回答
function output(arr) {
  return arr.map(item => {
    item.lessonCount = item.courses.reduce((total, cur) => {
      total += cur.lessons.length
      return total
    }, 0)
    delete item.courses
    return item
  })
}

我写完了才发现,我好像不太知道什么是数组重组方法...还是把代码放上来吧,可能和你的题目要求不太符合

function output3(Series) {
    return Series.map(obj => {
        let count = 0
        for (let i = 0; i < obj.courses.length; i++) {
            count = count + obj.courses[i].lessons.length
        }
        return {
            name: obj.name,
            lesson_count: count
        }
    })
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题