Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 映射和对象填充对象React.js/js_Javascript_Arrays_Reactjs_Javascript Objects_Array.prototype.map - Fatal编程技术网

Javascript 映射和对象填充对象React.js/js

Javascript 映射和对象填充对象React.js/js,javascript,arrays,reactjs,javascript-objects,array.prototype.map,Javascript,Arrays,Reactjs,Javascript Objects,Array.prototype.map,所以我有一个数组,其中只有一个对象,但是这个对象里面可能有3个或更多的对象。 这几乎与我调用它的api的格式完全相同(长度之所以有这样的数字是因为我在api调用中使用了参数): 我试图循环0、1、8和19中的每一个,从中提取数据并在表中显示它们。每次我尝试时,它只映射第一个,而不映射其他3个 我刚刚做了典型的: myApi.map((people, i) => { let row = <tr>{people[i].num}</tr><tr>{peop

所以我有一个数组,其中只有一个对象,但是这个对象里面可能有3个或更多的对象。 这几乎与我调用它的api的格式完全相同(长度之所以有这样的数字是因为我在api调用中使用了参数):

我试图循环0、1、8和19中的每一个,从中提取数据并在表中显示它们。每次我尝试时,它只映射第一个,而不映射其他3个

我刚刚做了典型的:

myApi.map((people, i) => {
  let row = <tr>{people[i].num}</tr><tr>{people[i].name}</tr>
  tableRow.push(row);
}) 
myApi.map((人,我)=>{
let row={people[i].num}{people[i].name}
tableRow.push(row);
}) 

,但正如我所说,它只显示第一条数据,而不显示其他3条数据。哪里出错了?

map
在这种情况下并不合适,因为您只是在迭代对象并将其推送到一个单独的数组中。另外,请注意,您发布的不是数组;它是一个物体

要迭代对象的值,可以使用
object.values
和简单的
forEach

让myApi=[{
0: {
0: {
数目:1,,
名字:“富兰克林”,
},
1: {
数字:58,
姓名:“哈罗德”,
},
8: {
数字:9,
姓名:“尤金”,
},
19: {
总数:5,
姓名:'克莱夫',
},
},
1: {
20: {
数字:6,
姓名:'鲍勃',
},
}
}];
设tableRows=[];
Object.values(myApi[0]).forEach(集合=>{
Object.values(collection.forEach)(person=>{
tableRows.push('Name为'+person.Name+';num为'+person.num));
});
});

console.log(tableRows)您需要在数组中的对象中循环

myApi.map((people) => {
  for(var person in people) {
  let row = <tr>{people[person].num}</tr><tr>{people[person].name}</tr>
  tableRow.push(row);
 }
}) 
myApi.map((人)=>{
for(人中人){
let row={people[person].num}{people[person].name}
tableRow.push(row);
}
}) 

我相信是这样的。

它看起来像一个带有0、1、8和19键的对象;不是数组,这对我不起作用。因为我使用的是react,所以我使用axios获得了信息,并用这些信息设置了一个state对象。当我试图映射它时,我使用
this.state.myApi
,但如果我使用
console.log(this.state.myApi[0])由于某种原因,它返回为未定义。编辑:数组中只有一个对象,因此您添加的对象不适用于我。@NathanGeckle代码中的
object.values(myApi).forEach(person=>{…})
?它可以将所有内容显示到表中,但我试图显示的部分信息没有在表中表示未定义。编辑:别介意那部分是我的错。在VSCode中使用“更改所有事件”时,我不小心。谢谢你的帮助,这对我没用。此人返回时未定义。
myApi.map((people) => {
  for(var person in people) {
  let row = <tr>{people[person].num}</tr><tr>{people[person].name}</tr>
  tableRow.push(row);
 }
})