引文:后台把所有数据对象信息放到一个数组中传回,已知数组内部对象有一个字段相同,根据这个相同字段进行数组拆分。
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图形。
后续有时间我回贴上优化后的代码。