Arrays React-筛选器数组获取所有消息
我正在尝试制作一个React过滤器来过滤每个人的消息。但是我没有办法得到正确的结果Arrays React-筛选器数组获取所有消息,arrays,reactjs,filter,Arrays,Reactjs,Filter,我正在尝试制作一个React过滤器来过滤每个人的消息。但是我没有办法得到正确的结果 0: {first_name: "dk", last_name: "k", email: "k@l.nl", message: "Email Sent", name: "test camp"} 1: {first_name: "asdfk", last_name: "lksdfl", email: "kk@l.nl", message: "Email Sent", name: "test camp"} 2: {f
0: {first_name: "dk", last_name: "k", email: "k@l.nl", message: "Email Sent", name: "test camp"}
1: {first_name: "asdfk", last_name: "lksdfl", email: "kk@l.nl", message: "Email Sent", name: "test camp"}
2: {first_name: "asdfkl", last_name: "lksdf", email: "salkdf@live.nl", message: "Email Sent", name: "test camp"}
3: {first_name: "asdklfjlk", last_name: "laskdfjlksdf", email: "ksdfsdaf@l.nl", message: "Email Sent", name: "test camp"}
4: {first_name: "asdfkl", last_name: "lksdjfkl", email: "kk@sds.nl", message: "Email Sent", name: "test camp"}
5: {first_name: "asdfkl", last_name: "lksdjfkl", email: "kk@sds.nl", message: "Clicked Link", name: "test camp"}
我想要实现的是为每个用户获得一个消息列表。对于用户asdfkl,它将是消息[发送电子邮件,单击链接]
有没有办法在react中实现这一点
提前感谢您可以使用reduce尝试更好的方法:
const filteredMessagesList = name => {
const messagesArray = [];
personList.forEach(person => {
if(person.name === name) {
messagesArray.push(person.message);
}
});
return messagesArray;
}
const people = [
{
first_name: 'dk',
last_name: 'k',
email: 'k@l.nl',
message: 'Email Sent',
name: 'test camp'
},
{
first_name: 'asdfk',
last_name: 'lksdfl',
email: 'kk@l.nl',
message: 'Email Sent',
name: 'test camp'
},
{
first_name: 'asdfkl',
last_name: 'lksdf',
email: 'salkdf@live.nl',
message: 'Email Sent',
name: 'test camp'
},
{
first_name: 'asdklfjlk',
last_name: 'laskdfjlksdf',
email: 'ksdfsdaf@l.nl',
message: 'Email Sent',
name: 'test camp'
},
{
first_name: 'asdfkl',
last_name: 'lksdjfkl',
email: 'kk@sds.nl',
message: 'Email Sent',
name: 'test camp'
},
{
first_name: 'asdfkl',
last_name: 'lksdjfkl',
email: 'kk@sds.nl',
message: 'Clicked Link',
name: 'test camp'
}
];
const getEmails = people.reduce((acc, cur) => {
const user = cur.first_name;
if (!acc[user]) {
acc[user] = [];
}
acc[user] = [...acc[user], cur];
return acc;
}, {});
console.log(getEmails);
您可以使用reduce尝试更好的方法:
const people = [
{
first_name: 'dk',
last_name: 'k',
email: 'k@l.nl',
message: 'Email Sent',
name: 'test camp'
},
{
first_name: 'asdfk',
last_name: 'lksdfl',
email: 'kk@l.nl',
message: 'Email Sent',
name: 'test camp'
},
{
first_name: 'asdfkl',
last_name: 'lksdf',
email: 'salkdf@live.nl',
message: 'Email Sent',
name: 'test camp'
},
{
first_name: 'asdklfjlk',
last_name: 'laskdfjlksdf',
email: 'ksdfsdaf@l.nl',
message: 'Email Sent',
name: 'test camp'
},
{
first_name: 'asdfkl',
last_name: 'lksdjfkl',
email: 'kk@sds.nl',
message: 'Email Sent',
name: 'test camp'
},
{
first_name: 'asdfkl',
last_name: 'lksdjfkl',
email: 'kk@sds.nl',
message: 'Clicked Link',
name: 'test camp'
}
];
const getEmails = people.reduce((acc, cur) => {
const user = cur.first_name;
if (!acc[user]) {
acc[user] = [];
}
acc[user] = [...acc[user], cur];
return acc;
}, {});
console.log(getEmails);
以下是按名字筛选集合的示例: const people=[{名字:'dk',姓氏:'k',电子邮件:'k@l.nl“,信息:'Email Sent',名称:'test camp'},{first_name:'asdfk',last_name:'lksdfl',电子邮件:'kk@l.nl“,信息:'Email Sent',名称:'test camp'},{first_name:'asdfkl',last_name:'lksdf',Email:'salkdf@live.nl,消息:'Email Sent',名称:'test camp'},{名字:'asdklfjlk',姓氏:'laskdfjlksdf',电子邮件:'ksdfsdaf@l.nl“,信息:'Email Sent',名称:'test camp'},{first_name:'asdfkl',last_name:'lksdjfkl',电子邮件:'kk@sds.nl“,信息:'Email Sent',名称:'test camp'},{first_name:'asdfkl',last_name:'lksdjfkl',电子邮件:'kk@sds.nl,消息:'单击链接',名称:'测试营地'}]; 让getMessagesByFirstName=名称,数据=>{ 让结果=data.filterx=>x.first_name.includeName | |【】 ifresult.length{ result=Array.fromresult.reducer,{message}=>r.addmessage,新集合 } 返回结果 }
console.loggetMessagesByFirstName'asdfkl',people下面是一个按名字筛选集合的示例: const people=[{名字:'dk',姓氏:'k',电子邮件:'k@l.nl“,信息:'Email Sent',名称:'test camp'},{first_name:'asdfk',last_name:'lksdfl',电子邮件:'kk@l.nl“,信息:'Email Sent',名称:'test camp'},{first_name:'asdfkl',last_name:'lksdf',Email:'salkdf@live.nl,消息:'Email Sent',名称:'test camp'},{名字:'asdklfjlk',姓氏:'laskdfjlksdf',电子邮件:'ksdfsdaf@l.nl“,信息:'Email Sent',名称:'test camp'},{first_name:'asdfkl',last_name:'lksdjfkl',电子邮件:'kk@sds.nl“,信息:'Email Sent',名称:'test camp'},{first_name:'asdfkl',last_name:'lksdjfkl',电子邮件:'kk@sds.nl,消息:'单击链接',名称:'测试营地'}]; 让getMessagesByFirstName=名称,数据=>{ 让结果=data.filterx=>x.first_name.includeName | |【】 ifresult.length{ result=Array.fromresult.reducer,{message}=>r.addmessage,新集合 } 返回结果 }
console.loggetMessagesByFirstName'asdfkl',people此命令可回答问题,提供有关此代码回答问题的原因和/或方式的附加上下文可提高其长期价值,而此命令可回答问题,提供有关此代码回答问题的原因和/或方式的附加上下文可提高其长期价值长期价值