我想要遍历一个数组并比较两个彼此相邻的值,但不要像这样在索引之后:
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)
答案 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");
}
}