首页 新闻 会员 周边

js中求最大值最小值 急急急,,,请各位大神帮忙

0
悬赏园豆:10 [已解决问题] 解决于 2016-04-05 11:23
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
js
太白水桶的主页 太白水桶 | 初学一级 | 园豆:195
提问于:2016-04-04 14:47
< >
分享
最佳答案
1

有Json数据排序的,我记得。可以排序后再去。你谷歌一下找找,Json数据排序。然后取第一个就行。

收获园豆:8
大楚打码人 | 老鸟四级 |园豆:4313 | 2016-04-05 09:19

我通过这样把数据得到了,可是应该怎样写到表格呢?谢谢~

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) {
        }
    });

太白水桶 | 园豆:195 (初学一级) | 2016-04-05 09:53

@太白水桶: 可以适当的拼接点标签串啊,然后append进去。例如。

var span_str='<span>"+xMin+"</span>';

$("#xmin").append(span_str); 试试Jquery吧。还有附带的before,after.等等的函数都很好用的。这段代码写在你的Success。返回正确结果后,AJAX可以加上Async:false.同步执行。别异步。

大楚打码人 | 园豆:4313 (老鸟四级) | 2016-04-05 10:49

@贫民窟大侠: 请问能不能准确一点,看不太懂,,谢谢

太白水桶 | 园豆:195 (初学一级) | 2016-04-05 10:50

@太白水桶: 

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) {
        }
    });
大楚打码人 | 园豆:4313 (老鸟四级) | 2016-04-05 11:01

@贫民窟大侠: 叩谢,想和大神做朋友可好—_—

太白水桶 | 园豆:195 (初学一级) | 2016-04-05 11:06

大神再打扰一下,为什么写完以后表格并没有显示数据呢?

太白水桶 | 园豆:195 (初学一级) | 2016-04-05 12:17

@太白水桶: 会不会你的容器不对呢?看看你的xMin 这个有没有值。alert看下。

大楚打码人 | 园豆:4313 (老鸟四级) | 2016-04-05 12:46

@太白水桶: 没事儿。互相帮助而已。

大楚打码人 | 园豆:4313 (老鸟四级) | 2016-04-05 12:46

@贫民窟大侠: x/yMin,x/yMax在之前没有加后面的代码是调试时都可以显示正确的数值,加上后面代码后,不知道为什么现在不能进行调试了,恩呢,我试试alert

太白水桶 | 园豆:195 (初学一级) | 2016-04-05 12:50

@太白水桶: 谷歌F12看看有没有错误。

大楚打码人 | 园豆:4313 (老鸟四级) | 2016-04-05 12:51

@贫民窟大侠: 调试时打不上断点,肿么看有没有错误呢?昨天调试时x/yMin,x/yMax里面都有值,alert可以直接加变量么?alert("xMin")像这样可以么?

太白水桶 | 园豆:195 (初学一级) | 2016-04-05 13:19

@太白水桶: 可以啊,不要双引号。

大楚打码人 | 园豆:4313 (老鸟四级) | 2016-04-05 13:20

@贫民窟大侠: 弹出框最先弹出的并不是最小值,再点击一下出现的是最小值,且表格下面出现“+xMin+”

太白水桶 | 园豆:195 (初学一级) | 2016-04-05 13:27

@贫民窟大侠: 再次点击还会累加最后一共出现了数组长度个“+xMin+”

太白水桶 | 园豆:195 (初学一级) | 2016-04-05 13:37
其他回答(2)
1
var array = [1,2,3,4,5,6,7,8,9];
alert(Math.max.apply(null,array));
alert(Math.min.apply(null,array));

 

收获园豆:1
I,Robot | 园豆:9783 (大侠五级) | 2016-04-04 15:37

不好使,出现错误second argument to Function.prototype.apply must be an array

有没有这个问题确切代码?谢谢~

支持(0) 反对(0) 太白水桶 | 园豆:195 (初学一级) | 2016-04-04 17:52
1

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);

收获园豆:1
藏红 | 园豆:209 (菜鸟二级) | 2016-04-05 10:02

可是value值是变化的,不能写在js中吧?大神谢谢你~恩,那你知道有没有什么js函数可以吧得到的变量写到表格中么?

 

支持(0) 反对(0) 太白水桶 | 园豆:195 (初学一级) | 2016-04-05 10:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册