我的咨询返回一个在数组内具有数组的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
?
答案 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对象返回结果。