如何.map()数组像参数里面的数组?

时间:2019-02-15 20:21:00

标签: javascript arrays reactjs ecmascript-6

我的咨询返回一个在数组内具有数组的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

3 个答案:

答案 0 :(得分:2)

我认为您想要更多类似这样的东西:

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

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

您在代码中所做的就是在数组上进行映射,然后什么也不做。然后调用未定义的myFunction,因为该映射永远不会返回任何内容。您要做的是将函数映射到数组中的每个项目以获取ID。因此,您将调用map,然后在map中为每个项目调用myFunction。

答案 1 :(得分:0)

您的展示不够,我可以使用此代码:

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)) 

答案 2 :(得分:0)

假设您的对象是按照您认为的结构构建的,那么应该可以正常工作。

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对象返回结果。