JavaScript编码以获得最高价值

时间:2015-07-22 11:58:23

标签: javascript arrays

我们有一个数组,例如:a[],我需要随机传递一些值,例如:a[98,75,65,102,35,85,6]

如果我从元素(65-75=-10)之前减去该值,来到98我们无法减去它,因为我们没有前一个元素,所以我们可以保留它。当我们用前一个数字减去所有元素时,我们会得到一些值,我需要在输出中显示最高值。

3 个答案:

答案 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);

最后,max79

希望,这会有所帮助:)

答案 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;
}