2017-08-15 191 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 
相關問題