我有一个包含几个值的数组,例如:
let myvar = 17
let myarray = [
{ start: 1, end: 10 },
{ start: 15, end: 22 },
{ start: 44, end: 47 }
]
Run Code Online (Sandbox Code Playgroud)
我正在寻找如何检查变量是否位于数组中某个对象的开头和结尾之间。
如果 myvar = 17,myfunction 返回 true,因为 17 介于 15 和 22 之间(第二个对象 { start 15,end: 22 }),但如果 myvar = 12,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)Run Code Online (Sandbox Code Playgroud)
更新:如果你想通过函数来做到这一点,那么你可以这样做:
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))Run Code Online (Sandbox Code Playgroud)