js写的chart表的代码如下:
function fillreport(){
$.ajax({
type : "POST",
dataType : "json",
url : address + "/data/energy_data/single_and_total_energy_consumption.json",
data : {
},
success : function(data) {
var result = eval(data);
var Ydata = new Array();
var Xdata = new Array();
for(var i = 0; i < result.length; i++){
if (result[i].length != 0) {
var phs1 = result[i].value1;
Xdata.push(parseInt(phs1));
var phs2 = result[i].value2;
Ydata.push(parseInt(phs2));
} else {
Xdata.push(0.0);
Ydata.push(0.0);
}
report(Xdata,Ydata);
}
},
error : function(data) {
}
});
}
请求的json文件里面的数据如下:
[
{"value1":"52","value2":"2"},
{"value1":"41","value2":"3"},
{"value1":"74","value2":"4"},
{"value1":"82","value2":"4"},
{"value1":"95","value2":"5"}
]
在表格中求chart中的最大值最小值
名称 最大值 最小值
Xdata
Ydata
有Json数据排序的,我记得。可以排序后再去。你谷歌一下找找,Json数据排序。然后取第一个就行。
我通过这样把数据得到了,可是应该怎样写到表格呢?谢谢~
function energy_table(){
$.ajax({
type : "POST",
dataType : "json",
url : address + "/data/energy_data/single_and_total_energy_consumption.json",
data : {
},
success : function(data) {
var result = eval(data);
var Ydata = new Array();
var Xdata = new Array();
for(var i = 0; i < result.length; i++){
if (result[i].length != 0) {
var phs1 = result[i].value1;
Xdata.push(parseInt(phs1));
var phs2 = result[i].value2;
Ydata.push(parseInt(phs2));
} else {
Xdata.push(0.0);
Ydata.push(0.0);
}
var yMax = Math.max.apply(null, Ydata);
var yMin = Math.min.apply(null, Ydata);
var xMax = Math.max.apply(null, Xdata);
var xMin = Math.min.apply(null, Xdata);
var yaverage=(yMax+yMin)/2;
var xaverage=(xMax+xMin)/2;
//document.getElementById("xmin").innerHTML=xMin;这样写对么?写不进去呢
//document.getElementById("xmax").innerHTML=xMax;
}
},
error : function(data) {
}
});
@太白水桶: 可以适当的拼接点标签串啊,然后append进去。例如。
var span_str='<span>"+xMin+"</span>';
$("#xmin").append(span_str); 试试Jquery吧。还有附带的before,after.等等的函数都很好用的。这段代码写在你的Success。返回正确结果后,AJAX可以加上Async:false.同步执行。别异步。
@贫民窟大侠: 请问能不能准确一点,看不太懂,,谢谢
@太白水桶:
function energy_table(){ $.ajax({ type : "POST", dataType : "json", async:false, //这里加上这个,同步请求。因为你需要及时的返回结果。 url : address + "/data/energy_data/single_and_total_energy_consumption.json", data : { }, success : function(data) { var result = eval(data); var Ydata = new Array(); var Xdata = new Array(); for(var i = 0; i < result.length; i++){ if (result[i].length != 0) { var phs1 = result[i].value1; Xdata.push(parseInt(phs1)); var phs2 = result[i].value2; Ydata.push(parseInt(phs2)); } else { Xdata.push(0.0); Ydata.push(0.0); } var yMax = Math.max.apply(null, Ydata); var yMin = Math.min.apply(null, Ydata); var xMax = Math.max.apply(null, Xdata); var xMin = Math.min.apply(null, Xdata); var yaverage=(yMax+yMin)/2; var xaverage=(xMax+xMin)/2; //document.getElementById("xmin").innerHTML=xMin;这样写对么?写不进去呢 //你这里已经得到了xMin值, var span_str='<span>"+xMin+"</span>'; //这段代码就是你拼接的标签,将这段标签,$("#xmin")形如document.getElementById("xmin"); 所以最终的操作$("#xmin").append(span_str);即可。这样就能填充到你的容器。若果是多个地方需要用到选择器。这个你可以百度下Jquery的选择器用法。 //document.getElementById("xmax").innerHTML=xMax; } }, error : function(data) { } });
@贫民窟大侠: 叩谢,想和大神做朋友可好—_—
大神再打扰一下,为什么写完以后表格并没有显示数据呢?
@太白水桶: 会不会你的容器不对呢?看看你的xMin 这个有没有值。alert看下。
@太白水桶: 没事儿。互相帮助而已。
@贫民窟大侠: x/yMin,x/yMax在之前没有加后面的代码是调试时都可以显示正确的数值,加上后面代码后,不知道为什么现在不能进行调试了,恩呢,我试试alert
@太白水桶: 谷歌F12看看有没有错误。
@贫民窟大侠: 调试时打不上断点,肿么看有没有错误呢?昨天调试时x/yMin,x/yMax里面都有值,alert可以直接加变量么?alert("xMin")像这样可以么?
@太白水桶: 可以啊,不要双引号。
@贫民窟大侠: 弹出框最先弹出的并不是最小值,再点击一下出现的是最小值,且表格下面出现“+xMin+”
@贫民窟大侠: 再次点击还会累加最后一共出现了数组长度个“+xMin+”
var array = [1,2,3,4,5,6,7,8,9]; alert(Math.max.apply(null,array)); alert(Math.min.apply(null,array));
不好使,出现错误second argument to Function.prototype.apply must be an array
有没有这个问题确切代码?谢谢~
var list =[
{"value1":"52","value2":"2"},
{"value1":"41","value2":"3"},
{"value1":"74","value2":"4"},
{"value1":"82","value2":"4"},
{"value1":"95","value2":"5"}
]
list.sort(function(a,b){
return a.value1>b.value1; //从小到大
//return a.value1<b.value1; //从大到小
})
console.log(list);
可是value值是变化的,不能写在js中吧?大神谢谢你~恩,那你知道有没有什么js函数可以吧得到的变量写到表格中么?