查找数字是否在两个数字之间

时间:2018-12-11 07:35:08

标签: javascript arrays filter int range

我有一个数字数组0、1、2、3、4、5、6 起始索引和结束索引是随机传递的。我必须查找给定的数字是否在开始索引和结束索引之间, 例如,如果起始索引为0,终止索引为3,则我需要判断给定的数字是0、1,2还是3,如果为4,5和6,则返回false。 现在对我来说棘手的部分 如果起始索引是4,结束索引是1,那么我需要告诉数字是4、5、6、0还是1,如果它的2和3则返回false

1 个答案:

答案 0 :(得分:1)

您可以先使用.filter()过滤数组项,然后使用.includes()来检查是否存在:

let data = [0, 1, 2, 3, 4, 5, 6];

let checker = (arr, start, end, value) => (
    start <= end ?
    arr.filter((_, i) => i >= start && i <= end) :
    arr.filter((_, i) => i >= start || i <= end)
).includes(value);

console.log(checker(data, 0, 3, 1));
console.log(checker(data, 0, 3, 4));
console.log(checker(data, 4, 1, 5));
console.log(checker(data, 4, 1, 2));
console.log(checker(data, 4, 1, 1));