【问题标题】:React: .map method statement returns undefinedReact:.map 方法语句返回未定义
【发布时间】:2021-08-16 01:48:23
【问题描述】:

我有以下功能;

    const ListallSpaces = newSubject.map(mySpaces => {
         const urlToBeSplit = mySpaces.s
         const onlySpaceNames = urlToBeSplit.split('/')[5]
         const subject = []
           return (
             subject.push({subject: [onlySpaceNames]}),
             console.log("subject", subject)
           )
        }) 
   console.log(ListallSpaces)

如果我 console.log(subject) 它返回一个包含一定空间的数组,这是我需要的值。但是,如果我 console.log 它返回未定义的 ListallSpaces。有什么原因吗?

【问题讨论】:

  • 你需要从 map 函数中返回一些东西。目前你正在返回 array.push 和 console.log,都返回 undefined
  • 更多信息请参见“逗号运算符”。

标签: javascript reactjs variables undefined array.prototype.map


【解决方案1】:

因为console.log 返回undefined

【讨论】:

  • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
  • 这是对的,但不解释逗号操作符对OP没用
【解决方案2】:

返回一些东西。

下面的示例将返回一个包含一个元素的数组。该元素将是一个对象。

const ListallSpaces = newSubject.map(mySpaces => {
     const urlToBeSplit = mySpaces.s
     const onlySpaceNames = urlToBeSplit.split('/')[5]
     const subject = [{subject: [onlySpaceNames]}]
     return subject
}) 

【讨论】:

    【解决方案3】:

    它给出了 undefined,就像在你的 return 语句中你的 push 命令给出 1 和 console.log 给你 undefined 一样。 要完成这项工作,您必须返回主题。 试试这个。 subject.push({ subject: [onlySpaceNames] }); return subject;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-16
      • 2021-12-10
      • 2021-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      相关资源
      最近更新 更多