我在折线图上绘制了一系列值。这些值是用户通过HTML表单输入的。
示例1的值:
130、136、142、148、149、159。
示例2的值:
130、140、150、175、180、200。
是否有可能选择最大增长值之前的脚本?
因此,例如1-利息价值将是149-因为从149到159是价值对价值的最大增长。
例如,出于相同的原因,例如2-利息值将为150。
请指教。
到目前为止,这是我的代码在您的帮助下:
$(document).ready(function() {
$.ajax({
url : "includes/dataFile.php",
dataType : "JSON",
success: function(data) {
google.charts.load('current', {'packages' : ['corechart', 'line']});
google.charts.setOnLoadCallback(function() { drawChart(data); });
}
});
function drawChart(caldata) {
var data = new google.visualization.DataTable(caldata);
data.addColumn('number', '');
data.addColumn('number', '');
data.addColumn('number', '');
var dataArray = [];
$.each(caldata, function(i, obj) {
dataArray.push([parseFloat(obj.stage1_rate), parseInt(obj.stage1), parseInt(obj.stage1_duration)]);
dataArray.push([parseFloat(obj.stage2_rate), parseInt(obj.stage2), parseInt(obj.stage2_duration)]);
dataArray.push([parseFloat(obj.stage3_rate), parseInt(obj.stage3), parseInt(obj.stage3_duration)]);
dataArray.push([parseFloat(obj.stage4_rate), parseInt(obj.stage4), parseInt(obj.stage4_duration)]);
dataArray.push([parseFloat(obj.stage5_rate), parseInt(obj.stage5), parseInt(obj.stage5_duration)]);
dataArray.push([parseFloat(obj.stage6_rate), parseInt(obj.stage6), parseInt(obj.stage6_duration)]);
});
data.addRows(dataArray);
var linechart_options = {
.....
};
var linechart = new google.visualization.LineChart(document.getElementById('linechart_div'));
linechart.draw(data, linechart_options);
function getMaxDelta(array) {
return array[array.reduce(function (r, a, i, aa) {
return aa[r + 1] - aa[r] < aa[i + 1] - a ? i : r;
}, 0)];
}
console.log(getMaxDelta([130, 136, 142, 148, 149, 159]));
}
});
最佳答案
您可以使用Array#reduce
保存具有最大增量的索引,并检查实际值和以下项是否大于保存的对。
function getMaxDelta(array) {
return array[array.reduce(function (r, a, i, aa) {
return aa[r + 1] - aa[r] < aa[i + 1] - a ? i : r;
}, 0)];
}
var array1 = [130, 136, 142, 148, 149, 159],
array2 = [130, 140, 150, 175, 180, 200];
console.log([array1, array2].map(getMaxDelta));
.as-console-wrapper { max-height: 100% !important; top: 0; }