2017-03-09 118 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