Javascript 访问具有不同编号的多个数据数组
我很难访问数组中的数据。每个数组都有自己的编号。然后里面有一个数组。我想显示数组中的Javascript 访问具有不同编号的多个数据数组,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我很难访问数组中的数据。每个数组都有自己的编号。然后里面有一个数组。我想显示数组中的名称 我想访问如下数据: source.tag.#ANY NUMBER#.name Foo, Bar, Baz "title" : "Test item"", "tag" : { "1" : [ { "name" : "Foo" }, { "name" : "Bar" } ], "2" : [ { "name" : "Baz" } ] } 我希望结果如下所示:
名称
我想访问如下数据:
source.tag.#ANY NUMBER#.name
Foo, Bar, Baz
"title" : "Test item"",
"tag" : {
"1" : [ {
"name" : "Foo"
},
{
"name" : "Bar"
} ],
"2" : [ {
"name" : "Baz"
} ]
}
我希望结果如下所示:
source.tag.#ANY NUMBER#.name
Foo, Bar, Baz
"title" : "Test item"",
"tag" : {
"1" : [ {
"name" : "Foo"
},
{
"name" : "Bar"
} ],
"2" : [ {
"name" : "Baz"
} ]
}
尝试1
InnerHTML={{__html:source.tag}}
结果:
[object Object]
{"1":[{"name":"Foo"}],"2":[{"name":"Bar"}]}
尝试2
InnerHTML={{__html:JSON.stringify(source.tag)}}
结果:
[object Object]
{"1":[{"name":"Foo"}],"2":[{"name":"Bar"}]}
尝试3次
InnerHTML={{__html:source.tag ? source.tag.map(item => item.name).join(', ') : ''}}
结果:什么都没有
我的数据如下所示:
source.tag.#ANY NUMBER#.name
Foo, Bar, Baz
"title" : "Test item"",
"tag" : {
"1" : [ {
"name" : "Foo"
},
{
"name" : "Bar"
} ],
"2" : [ {
"name" : "Baz"
} ]
}
对于数据,您需要使用括号表示法来访问数字和索引等键,如
source.tag[1][1].name // Bar
^^^ // key of tag
^^^ // index
var-source={title:“测试项”,标记:{1:[{name:“Foo”},{name:“Bar”}],2:[{name:“Baz”}]};
//单通道
console.log(source.tag[1][1].name);
//得到所有的名字
Object.key(source.tag).forEach(function(key){
source.tag[key].forEach(函数(元素){
console.log(element.name);
});
});代码>如果我们以您为例:
myObj={“1”:[{“name”:“Foo”}],“2”:[{“name”:“Bar”}]}代码>
然后,要访问例如“Foo”,您需要这样做:
console.log(myObj[“1”][0].name)代码>
因此,脚本将打印Foo
如果要迭代整个对象,请执行以下操作:
for(myObj中的var键)console.log(myObj[key][0].name)
循环遍历data.tag的每个属性,该属性将生成一个数组,对于这些属性/数组中的每个属性,循环遍历每个数组元素,将该元素的name属性添加到不断增长的字符串中,并加上逗号。最后,删除最后一个逗号。代码显示了实现这一点的两种不同方法
const源={
标题:“测试项目”,
标签:{
"1": [{
“名称”:“Foo”
}, {
“名称”:“酒吧”
}],
"2": [{
“名称”:“Baz”
}]
}
};
设str1='';
for(让prop进入source.tag){
for(让source.tag[prop]的elmt){
str1+=elmt.name+',';
}
}
str1=str1.slice(0,-1);
控制台日志(str1);
设str2='';
Object.keys(source.tag).map(num=>{
str2=source.tag[num].reduce((s,e)=>s+e.name+',',,str2);
});
str2=str2.slice(0,-1);
控制台日志(str2)代码>您提到的对象包含额外的(“)字符。首先,请忽略此额外的(“)字符。然后,您将能够控制以下提到的名称:
class User extends React.Component {
constructor(props) {
super(props);
this.state = {
title: 'Tests item',
"tags" : {
"1":[{
"name" : "Foo"
},
{
"name" : "Bar"
}],
"2" : [ {
"name" : "Baz"
} ]
}
};
}
正如你们所看到的,我在当地使用了你们的数据。现在可以访问每个标签的名称,如下所述:
console.log(this.state.tags["1"][0].name)
例如,请运行它
类用户扩展React.Component{
建造师(道具){
超级(道具);
此.state={
标题:“测试项目”,
“标签”:{
"1":[{
“名称”:“Foo”
},
{
“名称”:“酒吧”
}],
"2" : [ {
“名称”:“Baz”
} ]
}
};
}
转换标签(){
常数newTagItems=[];
Object.key(this.state.tags).forEach((key)=>{
this.state.tags[key].forEach((项)=>{
newTagItems.push(item.name);
})
});
返回newTagItems.join(',');
}
render(){
//console.log(this.state.tags[“1”][0].name)
返回(
{this.state.title}
{this.transformTags()}
);
}
}
ReactDOM.render(
,
document.getElementById('root'))
);代码>
JS-Bin
我不想要一个结果,我想要所有结果