我有一个数字数组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
答案 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));