编程语言
首页 > 编程语言> > javascript-在一行中编写嵌套过滤器

javascript-在一行中编写嵌套过滤器

作者:互联网

假设这个

const someList = Immutable.fromJS([
  {'id': 2, foo: 'puppet'}, 
  {'id': 4, foo: 'kitten'}
]);

//Then I filter like so

const entry = someList.filter(elem => {
    return elem.get('id') === 4
});

console.log(entry);
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.2/immutable.js"></script>

这给我

{'id': 4, foo: 'kitten'}

如何编写过滤器函数,该条目等于小猫,无需附加行.

我试过了

const entry = someList.filter(elem => {
    return elem.get('id') === 4
}).get('foo');

但没有运气.

解决方法:

您可以找到Array#find而不是Array#filter的商品.

使用find,您将获得第一个找到的谓词在其上返回true的元素.

const entry = someList.find(elem => elem.get('id') === 4).get('foo');

如果不确定要查找元素,则还需要一个默认对象.

const entry = (someList.find(elem => elem.get('id') === 4) || {}).get('foo');

标签:ecmascript-6,immutable-js,arrays,javascript,object
来源: https://codeday.me/bug/20191108/2005294.html