Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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进行数据收集_Javascript - Fatal编程技术网

使用Javascript进行数据收集

使用Javascript进行数据收集,javascript,Javascript,我有以下数组 var data = [ { 'key': "Parent A", 'value': [{ 'key': "Child A.1", 'value': "A1" }] }, { 'key': "Parent B", 'value': [{ 'key': "Child B.1", 'value': "B1" }, { 'key': "Chi

我有以下数组

var data = [
  {
    'key': "Parent A",
    'value': [{
      'key': "Child A.1",
      'value': "A1"
    }]
  },
  {
    'key': "Parent B",
    'value': [{
        'key': "Child B.1",
        'value': "B1"
      },
      {
        'key': "Child B.2",
        'value': "B2"
      }
    ]
  }
]
我需要创建一个新数组,其中子元素将在一行中

比如说,

{ info: 'outside = (Parent B) inside(Child B.1 , Child B.2)' }
我尝试了以下代码

var newData = []
data.forEach(function(elements) {
  var elOne = elements.value

  for (var childElement = 0; childElement < elOne.length; childElement++) {
    var r = elOne[childElement].key
    newData.push({
      'info': "outside = (" + elements.key + ") inside(" + r + ")"
    })
  }
})

console.log("--------------------")
newData.forEach(yy=> console.log(yy))

我怎样才能解决这个问题

基本上,您不希望对每个子元素执行新的“推送”,而是希望将所有子元素连接到一个字符串中,并对包含连接字符串的每个父元素执行一次“推送”:

var数据=[
{
“密钥”:“父级A”,
“价值”:[{
'键':“子A.1”,
“值”:“A1”
}]
},
{
'键':“父级B”,
“价值”:[{
'键':“子B.1”,
“值”:“B1”
},
{
“密钥”:“子B.2”,
“值”:“B2”
}
]
}
];
var newData=[];
data.forEach(函数(元素){
var elOne=元素值;
var r=“”;
对于(var childElement=0;childElementnewData.forEach(yy=>console.log(yy))
基本上,您不希望对每个子元素执行新的“推送”,而是希望将所有子元素连接到一个字符串中,并对包含连接字符串的每个父元素执行一个“推送”:

var数据=[
{
“密钥”:“父级A”,
“价值”:[{
'键':“子A.1”,
“值”:“A1”
}]
},
{
'键':“父级B”,
“价值”:[{
'键':“子B.1”,
“值”:“B1”
},
{
“密钥”:“子B.2”,
“值”:“B2”
}
]
}
];
var newData=[];
data.forEach(函数(元素){
var elOne=元素值;
var r=“”;
对于(var childElement=0;childElementnewData.forEach(yy=>console.log(yy))
您可以这样做:

const newData=[];
常数数据=[
{
“密钥”:“父级A”,
'value':[{'key':“Child A.1”,“value':“A1”}]
},
{
'键':“父级B”,
'value':[{'key':“Child B.1”,“value':“B1”},{'key':“Child B.2”,“value':“B2”}]
}
];
data.forEach((elem)=>{
常量child=elem.value.map((o)=>o.key.join(',');
push({info:`outside=(${elem.key})inside(${child})`});
});

console.log(newData)您可以这样做:

const newData=[];
常数数据=[
{
“密钥”:“父级A”,
'value':[{'key':“Child A.1”,“value':“A1”}]
},
{
'键':“父级B”,
'value':[{'key':“Child B.1”,“value':“B1”},{'key':“Child B.2”,“value':“B2”}]
}
];
data.forEach((elem)=>{
常量child=elem.value.map((o)=>o.key.join(',');
push({info:`outside=(${elem.key})inside(${child})`});
});

console.log(newData)你能显示你所需的输出而不是一些复杂的表示吗?@RajaprabhuAravindasamy我认为从代码结构来看,这实际上是所需的输出格式。{info:'outside=(Parent B)inside(Child B.1,Child B.2)}你能显示你所需的输出而不是一些复杂的表示吗?@RajaprabhuAravindasamy我认为从代码结构来看,这实际上是所需的输出格式。{info:'outside=(Parent B)inside(Child B.1,Child B.2)}@myCode请将此标记为正确答案then@myCode那么请把这个标记为正确答案
{ info: 'outside = (Parent A) inside(Child A.1)' }
{ info: 'outside = (Parent B) inside(Child B.1)' }
{ info: 'outside = (Parent B) inside(Child B.2)' }