引文:背景把所有資料對象資訊放到一個數組中傳回,已知數組内部對象有一個字段相同,根據這個相同字段進行數組拆分。
var TabArr = [
{ id: 1, txt: '1' },
{ id: 1, txt: '132' },
{ id: 2, txt: '112' },
{ id: 3, txt: '123' },
{ id: 3, txt: '123' },
{ id: 4, txt: '12ds3' },
{ id: 5, txt: '112ds' },
]
var objarr = [
{ options: [], cid: '' },
{ options: [], cid: '' },
{ options: [], cid: '' },
{ options: [], cid: '' },
{ options: [], cid: '' },
]
// id值相同的字段存入一個數組中。
for (let i = 0, l = TabArr.length; i < l; i++) {
for (let j = 0, lth = objarr.length; j < lth; j++) {
if (objarr[j].cid == '') {
objarr[j].cid = TabArr[i].id;
objarr[j].options.push(TabArr[i]);
break;
} else if (objarr[j].cid == TabArr[i].id) {
objarr[j].options.push(TabArr[i])
break;
}
}
}
console.log(objarr);
/* [
{ options: [{ id: 1, txt: '1' },{ id: 1, txt: '132' }], cid: '1' },
{ options: [{ id: 2, txt: '112' }], cid: '2' },
{ options: [{ id: 3, txt: '123' },{ id: 3, txt: '123' }], cid: '3' },
{ options: [{ id: 4, txt: '12ds3' }], cid: '4' },
{ options: [{ id: 5, txt: '112ds' }], cid: '5' },
] */
這裡得出的數組是在已知id有5個不同值,聲明5個對象數組字段進行存儲,有時候可能我們不清楚具體有多少不同值,是以這裡還可以優化,這裡介紹我的應用場景:根據背景數組資料進行分割得到7個數組對象,然後繪制7個Echarts圖形。
後續有時間我回貼上優化後的代碼。