Javascript 在数组中的对象中提取数组
嗨,伙计们,我正试图从中提取数据:Javascript 在数组中的对象中提取数组,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,嗨,伙计们,我正试图从中提取数据: 1) […] 0: {…} __v: 0 _id: "5ba96b8ebffd923734090df4" formID: "5ba96b83bffd923734090df0" inputArr: Array(3) [ "value1", "value2", "value3" ] labelArr: Array(3) [ "label1", "label2", "label3" ] <prototype>: O
1) […]
0: {…}
__v: 0
_id: "5ba96b8ebffd923734090df4"
formID: "5ba96b83bffd923734090df0"
inputArr: Array(3) [ "value1", "value2", "value3" ]
labelArr: Array(3) [ "label1", "label2", "label3" ]
<prototype>: Object { … }
length: 1
<prototype>: Array []
1)[…]
0: {…}
__v:0
_id:“5ba96b8ebffd923734090df4”
表格:“5ba96b83bffd923734090df0”
inputArr:Array(3)[“value1”、“value2”、“value3”]
labelArr:Array(3)[“label1”、“label2”、“label3”]
:对象{…}
长度:1
:数组[]
我需要访问数据中的数组,即this.state.inputData(您在上面看到的是内容)
我试过了
const labels = inputDataArr[0].labelArr.map((r, index) => {
return (
<tr key={index}>
<th>{index}</th>
<th>{r[index]}</th>
</tr>
);
const labels=inputDataArr[0]。labelArr.map((r,索引)=>{
返回(
{index}
{r[index]}
);
但我的物品没有定义,有人知道为什么吗
编辑:其他问题呈现:
renderData(i) {
const { inputDataArr } = this.state;
return (
!!inputDataArr.length &&
inputDataArr[i].inputArr.map((input, index) => (
<th key={index}>{input}</th>
))
);
}
countLength() {
const { inputDataArr } = this.state;
return !!inputDataArr.length && inputDataArr[0].inputArr.length;
}
runThrough() {
for (let i = 0; i < this.countLength; i++) return this.renderData(i);
}
render() {
const data = this.runThrough();
return (
<div className="app">
<table>
<tr>{this.renderLabels()}</tr>
{data}
</table>
</div>
);
}
}
renderData(一){
const{inputDataArr}=this.state;
返回(
!!inputDataArr.length&&
inputDataArr[i].inputArr.map((输入,索引)=>(
{input}
))
);
}
countLength(){
const{inputDataArr}=this.state;
return!!inputDataArr.length&&inputDataArr[0]。inputArr.length;
}
贯穿全文(){
for(设i=0;i
给出了另一个问题中的相同示例。不太确定这是否适合您,也许您需要更改并考虑一下
类应用程序扩展了React.Component{
状态={
inputDataArr:[
{
福美德:“3”,
输入端:[“值1”、“值2”],
labelArr:[“label1”、“label2”],
},
{
福美德:“3”,
输入端:[“值3”,“值4”],
labelArr:[“label3”、“label4”],
},
],
}
renderLabels(){
const{inputDataArr}=this.state;
return!!inputDataArr.length&&inputDataArr[0]。labelArr.map((标签,索引)=>
(
{index}
{label}
) );
}
render(){
返回(
{this.renderLabels()}
);
}
}
ReactDOM.render(,document.getElementById(“根”);
您在映射中将r
误认为是数组,它实际上是inputArr
值之一。对不起,我不明白,inputdatarr是一个数组,我取[0]一个,它是一个对象,我选择的数组是labelarr这里的html{r[index]}
应该是{r}
我收到此错误:this.state.inputDataArr.labelArr未定义,即使this.state.inputDataArr已定义,我也可以看到我在上面发布的结构。请尝试const labels=inputDataArr.labelArr
而不是inputDataArr[0]
如果它不是数组。谢谢你的帮助,但最后一个问题我刚刚过滤了,一旦我不需要,我会得到一个ID为3的对象数组,所以在这个例子中,所有对象的ID都是3,它们的labelArr都是相同的,我只想制作一个包含数组中所有标签的表。如何相同?所有的them就像[“label1”、“label2”、“label3”]
?所以这是您想要映射的唯一数组?让我们来吧。如果您不能参加官方文档的聊天讨论。如果!!
部分让您困惑,我将在一分钟内添加一个更简单的If
方法。不要像这样扩大您的老问题:)问一个新问题,并尝试给出所有细节。另外,不要为循环使用,使用map
或其他方法。我暂时不在这里,但当你问一个新问题并提供详细信息时,人们会尽力帮助你。