使用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;childElement 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;childElement newData.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)' }