Javascript 如何在JSONArray中找到两个连续对象之间的最大和最小差异

Javascript 如何在JSONArray中找到两个连续对象之间的最大和最小差异,javascript,arrays,json,Javascript,Arrays,Json,我有一个JSON数据,比如 { "data": [{ "distance": "700", "name": "xyz" }, { "distance": "680", "name": "abc" }, { "distance": "670", "name": "lmn" }, { "distance": "620", "name": "p

我有一个JSON数据,比如

{
    "data": [{
        "distance": "700",
        "name": "xyz"
    }, {
        "distance": "680",
        "name": "abc"
    }, {
        "distance": "670",
        "name": "lmn"
    }, {
        "distance": "620",
        "name": "pqr"
    }, {
        "distance": "400",
        "name": "tuv"
    }]
}
我想找到两个连续节点之间的最大和最小距离。 我尝试了以下代码,但我不知道我遗漏了什么 在这里,我尝试使用jquerysort来实现它

var min = data[0].distance - data[1].distance,
    max = data[0].distance - data[1].distance;
data.sort(function (a, b) {
    var temp = a.distance - b.distance;
    if (temp > max)
        max = temp;
    if (temp < min)
        min = temp;
});
var min=data[0]。距离-数据[1]。距离,
最大值=数据[0]。距离-数据[1]。距离;
数据排序(函数(a,b){
变量温度=a.距离-b.距离;
如果(温度>最大值)
最大值=温度;
如果(温度<分钟)
最小值=温度;
});
我甚至尝试使用普通的jqueryforeach循环

var min = data[0].distance - data[1].distance,
    max = data[0].distance - data[1].distance;
data.forEach(function (d, i) {
    var temp = data[i + 1].distance - d.distance;
    if (temp > max)
        max = temp;
    if (temp < min)
        min = temp;
});
var min=data[0]。距离-数据[1]。距离,
最大值=数据[0]。距离-数据[1]。距离;
data.forEach(函数(d,i){
var temp=数据[i+1]。距离-d.距离;
如果(温度>最大值)
最大值=温度;
如果(温度<分钟)
最小值=温度;
});

您可以这样做:

// Set default values to the max and min, to compare them later
var min = Number.MAX_VALUE,
    max = Number.MIN_VALUE;

// Iterate over the data object
for (var i = obj.data.length - 2; i >= 0; i--) {
    // Get the absolute(ignoring negatives) difference
    var temp = Math.abs(obj.data[i].distance - obj.data[i + 1].distance);

    // update values accordingly
    min = Math.min(min, temp);
    max = Math.max(max, temp);
}
console.log(min, max);
var obj={
“数据”:[{
“距离”:“700”,
“名称”:“xyz”
}, {
“距离”:“680”,
“名称”:“abc”
}, {
“距离”:“670”,
“名称”:“lmn”
}, {
“距离”:“620”,
“名称”:“pqr”
}, {
“距离”:“400”,
“名称”:“tuv”
}]
};
var min=Number.MAX_值,
max=Number.MIN_值;
对于(var i=obj.data.length-2;i>=0;i--){
var temp=Math.abs(对象数据[i].距离-obj.data[i+1].距离);
最小值=数学最小值(最小值,温度);
最大值=数学最大值(最大值,温度);
}

控制台日志(最小值、最大值)您可以这样做:

// Set default values to the max and min, to compare them later
var min = Number.MAX_VALUE,
    max = Number.MIN_VALUE;

// Iterate over the data object
for (var i = obj.data.length - 2; i >= 0; i--) {
    // Get the absolute(ignoring negatives) difference
    var temp = Math.abs(obj.data[i].distance - obj.data[i + 1].distance);

    // update values accordingly
    min = Math.min(min, temp);
    max = Math.max(max, temp);
}
console.log(min, max);
var obj={
“数据”:[{
“距离”:“700”,
“名称”:“xyz”
}, {
“距离”:“680”,
“名称”:“abc”
}, {
“距离”:“670”,
“名称”:“lmn”
}, {
“距离”:“620”,
“名称”:“pqr”
}, {
“距离”:“400”,
“名称”:“tuv”
}]
};
var min=Number.MAX_值,
max=Number.MIN_值;
对于(var i=obj.data.length-2;i>=0;i--){
var temp=Math.abs(对象数据[i].距离-obj.data[i+1].距离);
最小值=数学最小值(最小值,温度);
最大值=数学最大值(最大值,温度);
}
控制台日志(最小值、最大值)试试看

var jsonData = {
    "data": [{
        "distance": "700",
        "name": "xyz"
    }, {
        "distance": "680",
        "name": "abc"
    }, {
        "distance": "670",
        "name": "lmn"
    }, {
        "distance": "620",
        "name": "pqr"
    }, {
        "distance": "400",
        "name": "tuv"
    }]
};
var maxData = 0;
var minData = 0;
var data = 0;
$.each(jsonData.data, function(i, obj) { 
    if(i==0)
    {
        minData = obj.distance;     
    }
    else
    {       
        data = jsonData.data[i-1].distance - obj.distance;      
       if(data > maxData)
            maxData = data;
       if(data < minData)
            minData = data; 
    }
}); 
console.log("Max : "+maxData);
console.log("Min : "+minData);
var jsonData={
“数据”:[{
“距离”:“700”,
“名称”:“xyz”
}, {
“距离”:“680”,
“名称”:“abc”
}, {
“距离”:“670”,
“名称”:“lmn”
}, {
“距离”:“620”,
“名称”:“pqr”
}, {
“距离”:“400”,
“名称”:“tuv”
}]
};
var maxData=0;
var minData=0;
var数据=0;
$.each(jsonData.data,函数(i,obj){
如果(i==0)
{
minData=目标距离;
}
其他的
{       
data=jsonData.data[i-1]。距离-obj.distance;
如果(数据>最大数据)
maxData=数据;
如果(数据
试试看

var jsonData = {
    "data": [{
        "distance": "700",
        "name": "xyz"
    }, {
        "distance": "680",
        "name": "abc"
    }, {
        "distance": "670",
        "name": "lmn"
    }, {
        "distance": "620",
        "name": "pqr"
    }, {
        "distance": "400",
        "name": "tuv"
    }]
};
var maxData = 0;
var minData = 0;
var data = 0;
$.each(jsonData.data, function(i, obj) { 
    if(i==0)
    {
        minData = obj.distance;     
    }
    else
    {       
        data = jsonData.data[i-1].distance - obj.distance;      
       if(data > maxData)
            maxData = data;
       if(data < minData)
            minData = data; 
    }
}); 
console.log("Max : "+maxData);
console.log("Min : "+minData);
var jsonData={
“数据”:[{
“距离”:“700”,
“名称”:“xyz”
}, {
“距离”:“680”,
“名称”:“abc”
}, {
“距离”:“670”,
“名称”:“lmn”
}, {
“距离”:“620”,
“名称”:“pqr”
}, {
“距离”:“400”,
“名称”:“tuv”
}]
};
var maxData=0;
var minData=0;
var数据=0;
$.each(jsonData.data,函数(i,obj){
如果(i==0)
{
minData=目标距离;
}
其他的
{       
data=jsonData.data[i-1]。距离-obj.distance;
如果(数据>最大数据)
maxData=数据;
如果(数据
仅限差异。。仅限最大和最小差异。。最大和最小差值