lodsh 过滤器不适用于对象数组

我有一个对象数组,看起来像

const test = [{"Active": {"Id":'1', 'Name': 'Peter'}, 'Collect' : {'Id':'2', 'Name': 'John'}},{"Active": {"Id":'1', 'Name': 'Peter'}, 'Collect' : {'Id':'2', 'Name': 'tru'}},{"Active": {"Id":'1', 'Name': 'joe'}, 'Collect' : {'Id':'2', 'Name': 'mark'}}]

在这里,我尝试在何处使用过滤器

tobefilter = "Peter"

现在,我正在使用以下方式

const filterdata = _.filter(test => test.Active.Name === tobefilter)

这返回empty array。有人可以帮我从这里出去吗..


守着星空守着你
浏览 123回答 4
4回答

ABOUTYOU

在这种情况下,您缺少第一个参数——要过滤的数组const&nbsp;filterdata&nbsp;=&nbsp;_.filter(test,&nbsp;test&nbsp;=>&nbsp;test.Active.Name&nbsp;===&nbsp;tobefilter)但是你可以这样做,前提是记住首先构建过滤后的源数据(doc)const&nbsp;filterdata&nbsp;=&nbsp;_(test).filter(test&nbsp;=>&nbsp;test.Active.Name&nbsp;===&nbsp;tobefilter)const test = [{"Active": {"Id":'1', 'Name': 'Peter'}, 'Collect' : {'Id':'2', 'Name': 'John'}},{"Active": {"Id":'1', 'Name': 'Peter'}, 'Collect' : {'Id':'2', 'Name': 'tru'}},{"Active": {"Id":'1', 'Name': 'joe'}, 'Collect' : {'Id':'2', 'Name': 'mark'}}]const tobefilter = "Peter"const filterdata = _(test).filter(test => test.Active.Name === tobefilter)console.log(filterdata)<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.20/lodash.min.js"></script>

慕田峪9158850

像这样尝试,您没有传递数组以获取过滤器。const&nbsp;filterdata&nbsp;=&nbsp;_.filter(test,&nbsp;&nbsp;(t)=>&nbsp;t.Active.Name&nbsp;===&nbsp;tobefilter)

MYYA

您缺少第一个参数,即要过滤的数组。这是正确的方法:const&nbsp;filterdata&nbsp;=&nbsp;_.filter(test,&nbsp;(x)&nbsp;=>&nbsp;x.Active.Name&nbsp;===&nbsp;tobefilter)

慕虎7371278

在这种情况下你真的需要 lodash 吗?我的意思是它也是没有它的单衬垫。const test = [{"Active": {"Id":'1', 'Name': 'Peter'}, 'Collect' : {'Id':'2', 'Name': 'John'}},{"Active": {"Id":'1', 'Name': 'Peter'}, 'Collect' : {'Id':'2', 'Name': 'tru'}},{"Active": {"Id":'1', 'Name': 'joe'}, 'Collect' : {'Id':'2', 'Name': 'mark'}}]const filterdata = test.filter(test => test.Active.Name === "Peter")console.log(filterdata);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript