如何修复getTheTitles函数?其返回含undefined数组不符合npm测试预期
问题分析与修改方案
原代码的核心问题是遍历对象逻辑完全搞反:你需要遍历传入的books数组(每个元素是带title的对象),但当前代码却在遍历['title']数组,把整个books数组当成单个对象去取title属性,自然得到undefined,最终结果不符合预期。
修改后的函数代码
const getTheTitles = function(books) { return books.map(book => book.title); }
具体修改点
- 删除多余的
titles数组,不需要用它来做遍历载体 - 直接对传入的
books数组调用map方法,遍历每一个book对象,提取其title属性 - 若偏好普通函数写法,也可以写成:
books.map(function(book) { return book.title; })
验证效果
修改后调用getTheTitles(books),会返回['Book','Book2'],完全匹配测试用例的预期结果。
内容的提问来源于stack exchange,提问作者Jabri Juhinin
相关产品推荐
相关产品推荐

