gpt4 book ai didi

javascript - JS 声称 656 < 7 为真

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

我有一个 json 结构数组:

 { data : [ { "num" : val , "time" : val } , ... ] }

我需要找到 num 的最大值和最短/最长时间,以及将对象移动到元组数组中:

 [[time,num]...]

为此,我使用以下结构(这是一个成功回调,输出为 json 字符串):

        var json = $.parseJSON(output);

var xmin = json.data[0].time ;
var xmax = json.data[0].time ;
var ymax = json.data[0].num ;

var data = [];

//console.log(Math.max.apply(Math,json.data.num));

for( i = 0 ; i < json.data.length ; i++){
if( json.data[i].time < xmin){
xmin = json.data[i].time;
}
if( json.data[i].time > xmax){
xmax = json.data[i].time;
}

if( ymax < json.data[i].num ){
console.log(ymax + " " + json.data[i].num + "b " + (ymax > json.data[i].num) );
ymax = json.data[i].num ;
console.log(ymax + " " + json.data[i].num+ "a");
}

data.push([json.data[i].time,json.data[i].num]);
}

通过控制台的 logget,我知道 ymax 最后是 7:

....
607 607a
607 646b true
646 646a
646 656b true
656 656a
656 7b true
7 7a

如您所见,它声称 656 < 7 为真。我不是异步专家,任何帮助将不胜感激。

最佳答案

在比较之前,请确保将字符串正确转换为数字:

var ymax = parseInt(json.data[0].num, 10);

....

var ycur = parseInt(json.data[i].num, 10);
if( ymax < ycur ){
console.log(ymax + " " + ycur + "b " + (ymax > ycur) );
ymax = ycur;
console.log(ymax + " " + ycur + "a");
}

如果您没有真正需要进行比较并且只对跟踪最大值感兴趣,您可以在循环中将其一行:

ymax = Math.max(ymax, parseInt(json.data[i].num, 10));

关于javascript - JS 声称 656 < 7 为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27784242/

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