2017-08-15 201 views
-1

我想创建一个函数,它会从数组中返回小于我的第一个参数和大于我的第二个参数的元素。这段代码的工作原理是,如果我想获取元素> lower和< upper但是当我写这个我只是得到一个空数组.....我错过了什么?为什么这些操作符不能在这个数组上工作?

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")) 
+0

只要'upper> lower',就不可能有一个元素来满足你的条件。 –

+0

没有比“牛”还要大于“狗”的单词。 – melpomene

+1

您正在寻找同时拥有'<“牛”和“>”狗“'的元素。没有什么会匹配的。 –

回答

2

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 => { 
 
    \t console.log(element < lower, element > upper); 
 
    return element < lower && element > upper 
 
    }) 
 
    return filteredArray 
 
} 
 
console.log(filterAround(myArr, "cow", "dog"))

,因为这两个条件都从来没有真正

0

尝试改变这种

return element < lower && element > upper 

这个

return element > lower && element < upper 
相关问题