循环遍历数组,并比较两个值的最小值和最大值

时间:2018-12-26 23:55:50

标签: javascript arrays

我想要遍历一个数组并比较两个彼此相邻的值,但不要像这样在索引之后:

for (var i = 1; i < arr.length; i++) { 
  if (arr[i]-arr[i-1] == 10) {
    // do something
  }
}

因为数组如下所示:

10, -20, 20, 50

它将进行比较(我在循环中以“ 1”开头) -20 20 20 50

我要比较的是将 -20 10 10 20 和< strong> 20 和 50 。同样从最低值到最高值,然后使用

if (arr[i]-arr[i-1] == 10)

2 个答案:

答案 0 :(得分:1)

首先使用内置的array.sort方法对数组进行排序。

let sortedArr = arr.sort((a, b) => (a - b))

这会将您的数组按升序排列(从最低到最高),使您可以更清晰地进行比较。

答案 1 :(得分:1)

您应该使用Array.prototype.sort(),如下所示:

var arr = [10, -20, 20, 50];
var sorted = arr.sort((a, b) => a > b);
console.log(arr);
console.log(sorted);

然后您可以在其上使用逻辑:

var arr = [10, -20, 20, 50];
var sorted = arr.sort((a, b) => a > b);
for (var i = 1; i < sorted.length; i++) {
    if (sorted[i] - sorted[i - 1] == 10) {
        console.log("Do something");
    }
}