[英]How to get values from an array in angular 4
我有 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 將相同。
嘗試 :
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)
}
工作演示
這是一個簡單的解決方案:
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);
用這個
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.