小于或大于初始值不确定时的比较逻辑

问题描述 投票:2回答:2

下面的代码是涉及moment.js的较大项目的一小部分,但矩不是必需的。我正在使用UTC日期,可以使用简单的值比较。我正在寻找返回值在该值之后但在所有值中最低的索引(低于uc)。换句话说,最小值大于faketimenow。由于这些值是乱序的,因此都需要对照最低值进行检查。

下面的代码有效,但是我很好奇是否可以在不使用占位符uc变量来存储初始起始变量的情况下进行构建。如果我正在寻找最大的值,但是不确定如何与初始值不确定的值进行比较,这将很容易。我尝试使用arr [0]作为起始值,但由于它是最小的数字,所以一直通过。

// random range for demonstration purposes
var arr = [1, 2, 3, 4, 100, 17, 22, 15, 13, 11, 23];

var faketimenow = 10;

//initial index to use
var indextouse = 0;

// using a variable with initial start value that is ridiculously out of scope
var uc = 1000000000000;

for (i = 0; i < arr.length; i++) {
  console.log("i: " + i + " , faketimenow: " + faketimenow + " , indextouse: " + indextouse + ", uc: " + uc);
  if (arr[i] > faketimenow && arr[i] < uc) {
    uc = arr[i];
    indextouse = i;
  }
}

document.write(arr1[indextouse]);

下面的代码是涉及moment.js的较大项目的一小部分,但矩不是必需的。我正在使用UTC日期,可以使用简单的值比较。我想返回的索引是...

javascript logic logical-operators
2个回答
1
投票

您可以采用不进行排序的单循环方法,并返回高于给定值的最小值的索引。


1
投票

您可以使用Infinity作为初始值,所有值都小于该值。

© www.soinside.com 2019 - 2024. All rights reserved.