【问题标题】:Return results in a nested object在嵌套对象中返回结果
【发布时间】:2021-06-09 20:31:40
【问题描述】:

我正在尝试遍历包含数据的req.body,并且我正在尝试返回正文中存在的所有书籍的bookStatus。我正在这样做:

let bod = req.body.books;
const filtered = bod.map(function (rep){
        console.log(rep);
        return rep.bookStatus;
    });

这将返回所有书籍的bookStatus,但它只是bookStatus 键的值。我也在尝试获取密钥,因为它看起来像 {bookStatus:"value"}

更新: @evolutionxbox 发布的解决方案有效,但现在我试图仅访问已发布状态的解决方案。我正在这样做:

if(rep.bookStatus === 'published') {
 return ({ bookStatus: rep.bookStatus })
}

但这会返回如下[ { bookStatus: 'published' }, { bookStatus: 'published' }, undefined ] 的结果。这里undefinedunpublished,但我什至不希望它出现在第一位

【问题讨论】:

  • 你必须返回一个对象return ({ bookStatus: rep.bookStatus })?
  • @evolutionxbox 我如何确保只返回已发布的具有bookStatus 值的那些?我在 if 条件下执行了此操作,但它仍然返回未发布的

标签: javascript node.js express for-loop ecmascript-6


【解决方案1】:

更新:@evolutionxbox 发布的解决方案有效,但现在我尝试仅访问已发布状态的解决方案。我正在这样做:

if(rep.bookStatus === 'published') {
 return ({ bookStatus: rep.bookStatus })
}

但这会返回如下[ { bookStatus: 'published' }, { bookStatus: 'published' }, undefined ] 的结果。这里undefinedunpublished 一个,但我什至不希望它出现在第一位

【讨论】:

  • 映射前过滤怎么样? bod.filter(rep => rep.bookStatus)
【解决方案2】:
let bod = req.body.books;
const filtered = bod.map(function (rep){
        console.log(rep);
        return { bookStatus : rep.bookStatus };
    });

【讨论】:

    【解决方案3】:
    let bod = req.body.books;
    
    const filtered = bod.map(function ({bookStatus}){
        console.log(rep);
        return {bookStatus};
    });
    

    【讨论】:

    • 这没有意义
    • @boomchickawawa 这叫做解构
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多