2017-03-09 214 views
-4

我使用過濾器方法在值爲true時返回對象屬性。但是,我的過濾器方法不會停止迭代數組,因爲它發現真正的值,因此遍歷所有元素並返回空值。從數組中返回對象屬性

一旦條件成立,我想突破陣列過濾器。

這是我做了什麼:

array.filter((v)=>{ 
    var a = v.id === x ? v.collection : null 
    console.log(a) 
    return a 
}) 

我有數組中的三個元素和我console.log打印出來'music', 'null', 'null'。當它是'音樂'時,我希望它被打破。

+1

使用find而不是filter – rasmeister

+0

['.filter()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)函數期望它的回調返回一個*布爾*。它的設計目的是爲了返回一個*新數組*,並且將某些元素***過濾掉***。 –

+0

請參閱[MDN:* Array.prototype.find *](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)。 – RobG

回答

3

如果您只想要第一個匹配元素,則可以使用find而不是filter

它將返回第一個匹配元素,停止迭代並返回匹配。

+0

謝謝你的工作。 – user94628