重新编译 JSON 数据以减少行数
Re-compile JSON data to make less rows
如果我有一个有很多行的 JSON 结果,有时最多 100 行
标签:第1部分 值:1000标签:第2部分 值:700标签:第3部分 值:600标签:第4部分 值:500
。等等
我想更改数据,使其正常列出前 5 个结果,但不列出其余结果,而是对值求和并将标签更改为"其他"。
例
标签:第1部分 值:1000标签:第2部分 值:700标签:第3部分 值:600标签:第4部分 值:500标签:第5部分 值:500标签:其他 值:25650
在我传递图表之前,这是否可以在 javascript 中完成.js饼?还是有更好的方法来实现这一目标?
饼图的当前代码
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)
相关文章:
- 无法使用变量访问数据 JSON
- 使用 ng-repeat解析不均匀数据/ json对象
- 在没有jsonp的情况下从另一个域获取数据(json格式)
- 如何获取带参数的数据json
- 如何在android中显示实时雅虎金融股票数据..json格式如下所示
- 使用 JavaScript 将数据 json 显示到网页中
- 高位图表来源于API数据(JSON)
- 使用动态数据json初始化同位素
- Django:将数据JSON从视图传递给javascript
- 存储配置数据 (json)
- 未捕获的SyntaxError:意外的标识符图像数据json
- 接收数据json/jquery
- Jquery数据表数据json
- 不能在cakephp中使用数组数据json
- 在不锁定浏览器的情况下,将大数据JSON从REST请求反序列化为对象
- 如何读取数据JSON格式数组的字符串数据
- 我有一个流星应用程序,需要从/public/_assets/results/mmresults读取数据.Json文件,在
- 数据json不显示在html
- 使用2个下拉列表创建2个并排的表行来比较数据- JSON
- 需要将复杂的json对象转换为合适的angularjs UI树数据json结构