Javascript 为什么这些操作符不在此阵列上工作?

Javascript 为什么这些操作符不在此阵列上工作?,javascript,arrays,Javascript,Arrays,我试图创建一个函数,该函数将返回数组中小于第一个参数、大于第二个参数的元素。如果我想得到element>lower和{ 如果(!Array.isArray(数组)){ 抛出新错误('请输入有效数组') } 让filteredArray=array.filter(元素=>{ 返回元素upper }) 返回过滤器阵列 } console.log(filterAround(myArr,“cow”,“dog”)) const myArr=['dog','cat','zebra','ape','lion

我试图创建一个函数,该函数将返回数组中小于第一个参数、大于第二个参数的元素。如果我想得到element>lower和
const myArr = ['dog', 'cat', 'zebra', 'ape', 'lion', 'cow']

let filterAround = (array, lower, upper) => {
  if(!Array.isArray(array)) {
    throw new Error('Please enter a valid Array')
  }
  let filteredArray = array.filter(element => {
    return element < lower && element > upper
  })
  return filteredArray
}
console.log(filterAround(myArr, "cow", "dog"))
const myArr=['dog','cat','zebra','ape','lion','cow']
让filterAround=(数组、下、上)=>{
如果(!Array.isArray(数组)){
抛出新错误('请输入有效数组')
}
让filteredArray=array.filter(元素=>{
返回元素upper
})
返回过滤器阵列
}
console.log(filterAround(myArr,“cow”,“dog”))
const myArr=['dog','cat','zebra','ape','lion','cow']
让filterAround=(数组、下、上)=>{
如果(!Array.isArray(数组)){
抛出新错误('请输入有效数组')
}
让filteredArray=array.filter(元素=>{
控制台日志(元素<下部,元素>上部);
返回元素upper
})
返回过滤器阵列
}
log(filterAround(myArr,“cow”,“dog”))
尝试更改此选项

return element < lower && element > upper
返回元素upper
对此

return element > lower && element < upper
返回元素>下部和上部元素<上部元素

只要
上部>下部
,就不可能有一个元素满足您的条件。没有小于
cow
和大于
dog
的词。您正在寻找既是
<“cow”
又是
“dog”
的元素。可能你的意思是
&
| |
这看起来像是一个简单的错误-在逻辑测试中,你应该使用or(| |)代替and(&&&)。