2 回答

TA貢獻1836條經(jīng)驗 獲得超3個贊
這個修復(fù)是半臟的,但它有效,因為我現(xiàn)在或多或少地以我需要的格式獲取數(shù)據(jù),只是 Highcharts 還沒有如此漂亮地對數(shù)據(jù)進行分組或堆疊。
我用于構(gòu)建陣列的解決方案:
function BuildStacked(seriesData, GraphCategories) {
var newGraphdata = [];
let i = 0;
GraphCategories = removeDuplicateUsingSet(GraphCategories);
GraphCategories.forEach(function (GraphVal, GraphKey) {
seriesData.forEach(function (SeriesVal, SeiresKey) {
if (SeriesVal.name === GraphVal) {
if (SeriesVal.child === 1) {
newGraphdata[i] = { name: SeriesVal.name, data: [SeriesVal.y], stack: SeriesVal.group };
i++;
}
if (SeriesVal.child === 2) {
newGraphdata[(i - 2)].data.push(SeriesVal.y);
i++;
}
};
});
});
newGraphdata = newGraphdata.filter(function (el) {
return el != null;
});
return newGraphdata;
}

TA貢獻1810條經(jīng)驗 獲得超5個贊
您需要使用 Object 并為結(jié)果的每一行定義一個鍵,而不是使用array.push(),最后如果您需要數(shù)組作為輸出,請將其轉(zhuǎn)換為數(shù)組。例如:
newGraphdata.push({ 'name': SeriesVal.name, 'data': [SeriesVal.y], 'stack': SeriesVal.group });
將轉(zhuǎn)換為:
if (typeof newGraphdata.definedKey == 'undefined') {
newGraphdata.definedKey ={ 'name': SeriesVal.name, 'data': [SeriesVal.y], 'stack': SeriesVal.group };
}else{
newGraphdata.definedKey.data.push(SeriesVal.y);
}
最后,您可以將結(jié)果轉(zhuǎn)換為數(shù)組,如下所述: How to convert an Object {} to an Array [] of key-value pair in JavaScript
此外,如果您有興趣使用正確的數(shù)據(jù)類型,您可以在這里看到:https : //medium.com/front-end-weekly/es6-map-vs-object-what-and-when-b80621932373
添加回答
舉報