Javascript 如何在JSONArray中找到两个连续对象之间的最大和最小差异
我有一个JSON数据,比如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
{
"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=数据;
如果(数据
仅限差异。。仅限最大和最小差异。。最大和最小差值