【问题标题】:Array.map inside Array.map is not workingArray.map 里面的 Array.map 不工作
【发布时间】:2018-05-29 18:05:29
【问题描述】:

我得到一个从数据库返回的对象数组。我想映射那个数组,我想在里面映射另一个数组。但是我遇到了一些错误。如果有人知道,请帮助解决这个问题。

displayMovies(){
    if(!this.state.body) return ( <h2> Loading.... </h2>)
    else{

        return this.state.body.map((data) => {
            return(
                <div key={data._id}>
                    <li> {data.name} </li>
                    <ul>
                        {
                            return data.map((cast) => {
                                return <li> cast.name </li>
                            })
                        }
                    </ul>
                </div>
            )
        })
    }
}

Data response

【问题讨论】:

  • return data.map((cast) =&gt; { --> data.map((cast) =&gt; {
  • 你能解释一下吗? @YuryTarabanko
  • 你不需要另一个return。您正处于另一个 return 语句的中间。

标签: node.js reactjs ecmascript-6


【解决方案1】:

你不在嵌套循环内的任何函数中,所以你不需要return任何东西 替换

 return data.map((cast) => {

data.map((cast) => {

并在datacast属性上添加应用map函数

displayMovies(){
    if(!this.state.body) return ( <h2> Loading.... </h2>)
    else{

        return this.state.body.map((data) => {
            return(
                <div key={data._id}>
                    <li> {data.name} </li>
                    <ul>
                        {
                            data.cast.map((cast) => {
                                return <li> {cast.name} </li>
                            })
                        }
                    </ul>
                </div>
            )
        })
    }
}

【讨论】:

  • 我试过了,它说 data.map() 不是函数
  • 您正在访问数据中的 {data.name} 名称的另一件事,那么您如何将其用作数组?
  • 我觉得你在数据和地图之间缺少一些属性,应该是一个数组data.'property'.map
  • 我刚刚添加了响应的图像,如果有帮助的话
  • 我刚刚更新了我的答案检查你在地图之前缺少种姓属性data.caste.map
【解决方案2】:

您的第一个地图函数返回一个对象。对象没有 map 函数,而是使用 for in 循环,在循环内,检查属性是否为对象。 用这样的东西替换第二张地图:

for (const key in object) {
  if (object.hasOwnProperty(key) && typeof(object[key]=='object') {
    // do something with object[key].name 
  }
} 

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 2012-03-05
    • 2017-08-08
    • 1970-01-01
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    相关资源
    最近更新 更多