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

我不想要一个结果,我想要所有结果