检查数字是否在范围值内​包含在对象数组中



我有一个数组,里面有几个值,比如:

let myvar = 17
let myarray = [
{ start: 1, end: 10 },
{ start: 15, end: 22 },
{ start: 44, end: 47 }
]

我正在寻找如何检查变量是否位于数组中某个对象的开始和结束之间。

如果myvar=17,myfunction返回true,因为17在15和22之间(第二个对象{start15,end:22}(,但如果myvar=1,myfunction则返回false。

您可以使用some((

let data =
[
{ start: 1, end: 10 },
{ start: 15, end: 22 },
{ start: 44, end: 47 }
]
let num = 17
let result = data.some(d => d.start <=num && d.end >= num  )
console.log(result)


更新:如果你想通过功能做到这一点,那么你可以如下所示:

let myArray =
[
{ start: 1, end: 10 },
{ start: 15, end: 22 },
{ start: 44, end: 47 }
]
let myVar = 12
const myFunc = (num,data) => data.some(d => d.start <=num && d.end >= num)
console.log(myFunc(myVar,myArray))

lucumt的答案没有错,但它没有告诉我数据的哪个子项是真的。它只是告诉我它存在于那里。因此,我会为每一个使用。

let data =
[
{ start: 1, end: 10 },
{ start: 15, end: 22 },
{ start: 44, end: 47 }
]
let num = 17

data.forEach(dc => {
// dc = data child
if (dc.start <= num && dc.end >= num) {
console.log(dc);
console.log(dc.start);
console.log(dc.end);
}
});

最新更新