如何获取数组中的下一个元素,但是,如果是最新的,那么转到数组中的第一个元素。
[1,2,3,4,5].find(3) => 4
[1,2,3,4,5].find(5) => 1
[1,2,4,5].find(3) => 4
[1,2,4,5].find(0) => 1
答案 0 :(得分:2)
只需一个简单的循环就足够简单了:
console.log('[1,2,3,4,5].find(3) =>', findNumber([1,2,3,4,5], 3));
console.log('[1,2,3,4,5].find(5) =>', findNumber([1,2,3,4,5], 5));
console.log('[1,2,4,5].find(3) =>', findNumber([1,2,4,5], 3));
console.log( '[1,2,4,5].find(0) =>', findNumber([1,2,4,5], 0));
function findNumber(array, numberToFind) {
for (var i=0;i<array.length;i++) {
if (array[i] > numberToFind) {
return array[i];
}
}
return array[0]
}
&#13;
答案 1 :(得分:0)
您可以创建首先检查数字是否在数组中的函数,如果是,则返回下一个元素,然后使用while
循环递增到下一个数字并返回它。
function findNumber(ar, num) {
var i = ar.indexOf(num);
if (i != -1) {
return (i != ar.length - 1) ? ar[i + 1] : ar[0];
} else {
while (true) {
if (num > Math.max.apply(null, ar) || num < Math.min.apply(null, ar)) return ar[0];
if (ar.indexOf(num) != -1) {
return num;
} else {
num++
}
}
}
}
console.log(findNumber([1, 2, 3, 4], 2))
console.log(findNumber([1, 2, 4, 5], 3))
console.log(findNumber([1, 2, 5], 6))
console.log(findNumber([1, 2, 5], 0))
&#13;