我们有一个数组,例如:a[]
,我需要随机传递一些值,例如:a[98,75,65,102,35,85,6]
。
如果我从元素(65-75=-10)
之前减去该值,来到98
我们无法减去它,因为我们没有前一个元素,所以我们可以保留它。当我们用前一个数字减去所有元素时,我们会得到一些值,我需要在输出中显示最高值。
答案 0 :(得分:0)
起初我们有ar a
var a = [98,75,65,102,35,85,6];
并声明新数组a1
:
var a1 = [];
让我们通过用前一个元素减去每个元素(第一个元素除外)来运行一个填充这个数组的循环。
for (var i = 1; i < a.length; i++) {
a1.push(a[i-1]-a[i]);
}
然后我们将获得a1:
a1 = [23, 10, -37, 67, -50, 79];
因此,我们可以应用不同的方法从this article获取最大数据,而更喜欢的是
var max = Math.max.apply(Math, a1);
最后,max
为79
希望,这会有所帮助:)
答案 1 :(得分:0)
请检查以下代码:
var arr = [98, 75, 65, 102, 35, 85, 6];
var max = undefined;
for (var i = 0; i < arr.length - 1; i++) {
var dif = arr[i + 1] - arr[i];
if (max === undefined || dif > max) {
max = dif;
}
}
console.log(max);
为方便起见,请在JSFIDDLE中查看。
答案 2 :(得分:0)
这是“减少”的经典应用程序 - 我们正在尝试将数组减少到单个数字。基本形式是
a.reduce(findLargestDifference)
其中findLargestDifference
是一个函数,它传递最近的减少值,元素,索引和原始数组:
function findLargestDifference(cur, elt, idx, arr) {
var diff = arr[idx-1] - elt;
return idx === 1 ? diff : diff > cur ? diff : cur;
}