gpt4 book ai didi

javascript - 重新编译 JSON 数据以减少行数

转载 作者:行者123 更新时间:2023-11-28 18:37:15 26 4
gpt4 key购买 nike

如果我的 JSON 结果有很多行,有时多达 100 行

标签:第 1 部分 值:1000标签:第 2 部分 值(value):700标签:第 3 部分 值(value):600标签:第四部分 值(value):500

...等等

我想更改数据,以便它正常列出前 5 个结果,但它不会列出其余结果,而是对值求和并将标签更改为“其他”。

示例

标签:第 1 部分 值:1000标签:第 2 部分 值(value):700标签:第 3 部分 值(value):600标签:第 4 部分 值(value):500标签:第 5 部分 值(value):500标签:其他 值(value):25650

在传递给 Chart.js 饼图之前,这可以在 javascript 中完成吗?或者有更好的方法来实现这一点吗?

饼图的当前代码

function chart1(branch, apitime){           
$.ajax({
url: jsonpath' + apitime + branch,
dataType: 'jsonp',
success: function (response) {
console.log (response);
var datachart = response;
var ctx2 = document.getElementById("chart-area2").getContext("2d");
var myChart = new Chart(ctx2).Pie(datachart);
}
});
}

数据已排序,我也可以更改服务器上的 SQL 来执行此操作,我只是不知道执行此操作的正确方法是什么。

此处为 JSON 示例 http://pastebin.com/p3Y9mSX3

最佳答案

您可以在创建图表之前修改数据。

var top6 = datachart.slice(0,5)
top6[5] = {
label: 'other',
value: datachart.slice(5).reduce(function(sum, data) {
return sum + data.value
}, 0)
}
var ctx2 = document.getElementById("chart-area2").getContext("2d");
var myChart = new Chart(ctx2).Pie(top6);

这可以变得更通用,以获得前 N 个条目

var getTopN = function(dataArray, n)
var tops = dataArray.slice(0, n)
tops[n] = {
label: 'other',
value: dataArray.slice(n).reduce(function(sum, data) {
return sum + data.value
}, 0)
}
return tops
}

var top5 = getTopN(datachart, 5)
var top10 = getTopN(datachart, 10)

关于javascript - 重新编译 JSON 数据以减少行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36863170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com