【问题标题】:How to .map() array inside array like parameter?如何像参数一样在数组中使用 .map() 数组?
【发布时间】:2019-07-10 00:29:03
【问题描述】:

我的咨询返回一个 json 对象,数组内有数组...我的 console.log 是这样的:

item1: false
item2: 999
item3: Array(3)
          0: {id: 1589, data: "..."}
          1: {id: 1587, data: "..."}

我需要获取item3 数组并像参数一样传递,所以我尝试了一下:

componentDidMount() {
   //... 
  this.myFunction(myJson.item3.map(content => content.id))     
}

myFunction = id => {
   //something....
}

但是,我的 content 变量返回类似于“未定义”。

我尝试使用不同的方法来做到这一点,但没有成功。

我做错了什么?

如何获取map() 我的数组item3 并像参数一样传递给myFunction

【问题讨论】:

  • 您将一组 id 传递给“myFunction”。这是你想要的吗?
  • 您能否在控制台记录您的 content 时添加与您的 CDM 功能相关的代码。可能 CDM 无权访问content
  • 你能不能也给出预期的输出。目前还不清楚你真正想要什么。
  • 太好了。为什么人们在课堂上使用a = b => {a(b) { 怎么了?
  • @WillHoskings 它是一个函数,而不是一个类,这是新标准。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

标签: javascript arrays reactjs ecmascript-6


【解决方案1】:

假设你的对象是你认为的结构,这应该可以正常工作。

var jsonObj = {
  item1: false,
  item2: 999,
  item3: [
    {id: 1589, data: "..."},
    {id: 1587, data: "..."}
  ]
};

const ids = jsonObj.item3.map( o => o.id );

console.log(ids);

如果这仍然无法让您获得 ids 数组,请发布您的 json 对象的确切返回。

【讨论】:

    【解决方案2】:

    你还没有显示足够,我有这个代码工作:

    let things = {
      thing1: false,
      thing2: '999',
      thing3: [{ id: 1589, data: "..." },
              { id: 1587, data: "..." }]
    }
    
    const myFunction = id => {
      console.log(id)
    }
    
    myFunction(things.thing3.map(content => content.id)) 

    【讨论】:

      【解决方案3】:

      我想你想要更多这样的东西:

      componentDidMount() {
         //... 
        myJson.item3.map(content => this.myFunction(content.id))     
      }
      
      myFunction = id => {
         //something....
      }
      

      您在代码中所做的是映射数组,然后什么也不做。然后调用未定义的 myFunction ,因为地图从不返回任何内容。您想要做的是将函数映射到数组中的每个项目以获取 id。因此,您将调用 map,然后在 map 中为每个项目调用 myFunction。

      【讨论】:

        猜你喜欢
        • 2020-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-18
        • 2019-03-11
        • 2016-03-12
        • 2021-12-28
        • 2018-11-19
        相关资源
        最近更新 更多