【发布时间】:2017-03-04 12:20:42
【问题描述】:
这个问题似乎有点奇怪。没关系。
这是一个数组
[2, 7, 5, 10]
如果我想获得 2 之后的下一个更大的数字,这是我的代码
var MyArray = [2, 7, 5, 10];
var RandomNumber = 2;
var MinGreaterThanPos;
for (var i =0; i < MyArray.length; i++) {
if (MyArray[i] <= RandomNumber)
continue;
if (typeof(MinGreaterThanPos) == 'undefined' || MyArray[i] < MinGreaterThanPos)
{
MinGreaterThanPos = i;
}
}
alert(MyArray[MinGreaterThanPos]);
它将返回 7。
如果我想在 2 之后的 greater 数字中获得最低值怎么办?
这意味着,7, 5, 10 大于 2。但我想得到 5,因为 5 和 2 之间的差异小于其他任何一个与 2 相比。
我该怎么做?
更新:
到此为止,如果数组中有对象呢?
例如:
var MyArray = [{user: 1, position:2}, {user:2, position: 6}, {user:3, position: 4}];
我只想对position 做同样的事情。如果我选择位置 2,那么我希望回到的下一个位置是 4 而不是 6。
【问题讨论】:
-
当数组为[5, 2, 7, 10]时,你期望的结果是7。对吧?
标签: javascript arrays sorting