Angular 根据多个键筛选数组
我有很多人知道他们的一些信息。Angular 根据多个键筛选数组,angular,typescript,Angular,Typescript,我有很多人知道他们的一些信息。 我想同时根据宗教信仰、性别和记录编号筛选此数组。有办法吗? 这里是人物阵列: { "Id": 1270, "FirstName": "name", "LastName": "last name", "Religion": "religion", "RecordNumber": 1, "Gender": "male", "Contacted": false, "NeedsTransportation":
我想同时根据宗教信仰、性别和记录编号筛选此数组。
有办法吗?
这里是人物阵列:
{
"Id": 1270,
"FirstName": "name",
"LastName": "last name",
"Religion": "religion",
"RecordNumber": 1,
"Gender": "male",
"Contacted": false,
"NeedsTransportation": false,
"WhenContacted": null,
"ContactedByWho": null,
},
{
"Id": 1383,
"FirstName": "name",
"LastName": "last name",
"Religion": "religion",
"RecordNumber": 1,
"Gender": "male",
"Contacted": false,
"NeedsTransportation": false,
"WhenContacted": null,
"ContactedByWho": null
},
{
"Id": 1394,
"FirstName": "name",
"LastName": "last name",
"Religion": "religion",
"RecordNumber": 1,
"Gender": "male",
"Contacted": false,
"NeedsTransportation": false,
"WhenContacted": null,
"ContactedByWho": null,
}
谢谢您的帮助。使用
过滤器
:
const people: Person[] = [...];
people.filter(p => {
return p.Religion === (...) // condition for religion
&& p.Gender === (...) // condition for gender
&& p.RecordNumber === (...); // condition for record number
});
当然,条件不必是相等比较,也不必使用and运算符。其思想是,
filter
方法将返回一个新数组,其中只包含作为参数传递的函数返回的true
项。在内部,您可以进行任何需要的检查。使用过滤器
:
const people: Person[] = [...];
people.filter(p => {
return p.Religion === (...) // condition for religion
&& p.Gender === (...) // condition for gender
&& p.RecordNumber === (...); // condition for record number
});
当然,条件不必是相等比较,也不必使用and运算符。其思想是,
filter
方法将返回一个新数组,其中只包含作为参数传递的函数返回的true
项。你可以在里面做任何你需要的检查。为什么你不能只做过滤
var filteredResult = x.filter((x)=> (x.Id == 1394) && (x.Religion =="religion") && (x.Gender=="male") )
当然,您可以使用任何运算符,为要迭代的项提供布尔值true,以在结果数组中获取该项为什么不能只执行
筛选
var filteredResult = x.filter((x)=> (x.Id == 1394) && (x.Religion =="religion") && (x.Gender=="male") )
当然,您可以使用任何运算符,为迭代的项提供布尔值true,以在结果数组中获取该项
let people=[{
“Id”:1270,
“名字”:“名字”,
“姓氏”:“姓氏”,
“宗教”:“宗教”,
“记录编号”:1,
“性别”:“男性”,
“接触”:假,
“需要运动”:错误,
“WhenContacted”:空,
“ContactedByWho”:空,
},
{
“Id”:1383,
“名字”:“名字”,
“姓氏”:“姓氏”,
“宗教”:“宗教”,
“记录编号”:1,
“性别”:“男性”,
“接触”:假,
“需要运动”:错误,
“WhenContacted”:空,
“ContactedByWho”:空
},
{
“Id”:1394,
“名字”:“名字”,
“姓氏”:“姓氏”,
“宗教”:“基督徒”,
“记录编号”:1,
“性别”:“男性”,
“接触”:假,
“需要运动”:错误,
“WhenContacted”:空,
“ContactedByWho”:空,
}]
常量过滤器=(宗教、性别、记录编号)=>{
return people.filter(({宗教,性别,记录编号})=>宗教===宗教和性别===性别和+记录编号===+记录编号)
}
let filteredPeople=过滤器('christian','male',1)
console.log(filteredPeople)
let people=[{
“Id”:1270,
“名字”:“名字”,
“姓氏”:“姓氏”,
“宗教”:“宗教”,
“记录编号”:1,
“性别”:“男性”,
“接触”:假,
“需要运动”:错误,
“WhenContacted”:空,
“ContactedByWho”:空,
},
{
“Id”:1383,
“名字”:“名字”,
“姓氏”:“姓氏”,
“宗教”:“宗教”,
“记录编号”:1,
“性别”:“男性”,
“接触”:假,
“需要运动”:错误,
“WhenContacted”:空,
“ContactedByWho”:空
},
{
“Id”:1394,
“名字”:“名字”,
“姓氏”:“姓氏”,
“宗教”:“基督徒”,
“记录编号”:1,
“性别”:“男性”,
“接触”:假,
“需要运动”:错误,
“WhenContacted”:空,
“ContactedByWho”:空,
}]
常量过滤器=(宗教、性别、记录编号)=>{
return people.filter(({宗教,性别,记录编号})=>宗教===宗教和性别===性别和+记录编号===+记录编号)
}
let filteredPeople=过滤器('christian','male',1)
console.log(filteredPeople)
请分享您尝试过的代码。我想您可以用RxJS实现这一点:对于初学者来说,这里没有数组……奥斯卡,我只是参与演示了const temp=this.temp.filter(函数(d){return d.religation.indexOf(val)!=-1 | d.Gender.indexOf(val) !== -1; }); 这个。人=临时工代码>请分享你尝试过的代码。我想你可以用RxJS来实现这一点:首先,你得到的不是数组……奥斯卡,我只是参与其中演示const temp=this.temp.filter(函数(d){return d.religation.indexOf(val)!=-1 | | | d.Gender.indexOf(val)!=-1;});这个。人=临时工代码>