我有3个数组:
A = [AC,DC];
B = [3,4,4,4];
c = [1,2,2,2];
我需要创建一个循环以从这些数组中检索值并以以下格式显示:
{
name:AC
value:{
one:3 // from B
two :1, // from C
},
{
one:4, // from B
two:2 // from C
}
},
{
name:DC
value:{
one:3 // from B
two :1, // from C
},
{
one:4, // from B
two:2 // from C
}
}
}
数组在变化,不一致。
this.A.forEach((item,index)=>{
this.B.forEach((item1,index2)=>{
this.multi.push(
{
"names":item,
"value":[
{
"one":item1,
"two":this.c[index2]
}
]
})
})
我使用此for循环,但是我没有得到正确的格式,我的代码有错误吗?有什么需要改变的吗?任何帮助将不胜感激。而不是for-each循环。我使用每个循环来获取所有值,因为数组中的值是变化的。还有一点,第一个数组的长度与第二个和第三个数组的长度不同,但是数组2和数组3相同。
答案 0 :(得分:0)
尝试:
this.A.forEach((item,index)=>{
let values:{}[] =[];
for(let i=0 ; i<Math.min(this.B.length , this.C.length) ; i++){
values.push(
{
"one":this.B[i],
"two":this.C[i]
}
)
}
this.multi.push(
{
"names":item,
"value":values
})
});
console.log(this.multi)
}
工作demo
答案 1 :(得分:0)
这是一个简单的解决方案:
let A = ["AC","DC"];
let B = [3,4,4,4];
let C = [1,2,2,2];
let result = {};
A.forEach((element) => {
result[element] = {
name: element,
value: B.map((_, index) => {
return {
one: B[index],
two: C[index]
};
})
};
});
console.log(result);
答案 2 :(得分:0)
使用此
let A = ["AC","DC"];
let B = [3,4,4,4].filter((v,i) => [3,4,4,4].indexOf(v) == i);
let C = [1,2,2,2].filter((v,i) => [1,2,2,2].indexOf(v) == i);
let E = A.map(item=>{
return {'name':item,
'value':B.map((item,index)=>{
return {'one':B[index],'two':C[index]}
})
}
})
console.log(E)