基于键如何在JavaScript中从数组中过滤?
我收到了所有工作指令的回复基于键如何在JavaScript中从数组中过滤?,javascript,arrays,Javascript,Arrays,我收到了所有工作指令的回复 { "jobOrders": [{ "id": "5b4f7ad860dfee3b009d7452", "haulier": { "companyName": "BigDataMatica", "email": "nirmalkumar.s@datinfi.com", "registrationNumber": "nirmal89HJ", "companyAddress": "
{
"jobOrders": [{
"id": "5b4f7ad860dfee3b009d7452",
"haulier": {
"companyName": "BigDataMatica",
"email": "nirmalkumar.s@datinfi.com",
"registrationNumber": "nirmal89HJ",
"companyAddress": "RSPURAM",
"companyPhone": "8687678",
"yardAddress": "Pragatinagar",
"yardPhone": "69876876",
"haulierCode": "Haulier",
"billingAddress": "Pragatinagar"
}
},
{
"id": "5b501f8f60dfee3b009d7454",
"haulier": {
"companyName": "BigDataMatica",
"email": "nirmalkumar.s@datinfi.com",
"registrationNumber": "nirmal89HJ",
"companyAddress": "RS PURAM",
"companyPhone": "8687678",
"yardAddress": "Pragatinagar",
"yardPhone": "69876876",
"haulierCode": "Haulier",
"billingAddress": "Pragatinagar"
}
},
{
"id": "5b5020f360dfee3b009d7455",
"haulier": {
"companyName": "BigDataMatica",
"email": "sivasai.s@datinfi.com",
"registrationNumber": "nirmal89HJ",
"companyAddress": "RS PURAM",
"companyPhone": "8687678",
"yardAddress": "Pragatinagar",
"yardPhone": "69876876",
"haulierCode": "Haulier",
"billingAddress": "Pragatinagar"
}
}
]
}
根据工单,我需要根据haulier
objectemail
键过滤工单
let haulierjobordersnames = joborderlist && joborderlist.map && joborderlist.map(a => a.haulier.email);
console.log("haulierjobordersnames", haulierjobordersnames);
输出:
["nirmalkumar.s@datinfi.com", "nirmalkumar.s@datinfi.com", "sivasai.s@datinfi.com"]
[undefined, undefined, undefined]
输出:
["nirmalkumar.s@datinfi.com", "nirmalkumar.s@datinfi.com", "sivasai.s@datinfi.com"]
[undefined, undefined, undefined]
两个问题:
.filter
,而不是(仅).map
返回一些内容。否则,请跳过大括号,以便使用表达式语法
joborderlist.filter((el)=>el.haulier.email == haulierjobordersnames)
.map((el) => el.haulier.email)
显然,通过这种方式,输出将重复相同的值,因此,除了刚才过滤的电子邮件之外,您可能还想提取一些其他信息。两个问题:
.filter
,而不是(仅).map
返回一些内容。否则,请跳过大括号,以便使用表达式语法
joborderlist.filter((el)=>el.haulier.email == haulierjobordersnames)
.map((el) => el.haulier.email)
显然,通过这种方式,输出将具有相同值的重复,因此您可能希望提取除刚才筛选的电子邮件之外的其他信息。您需要的是一个
过滤器,而不是映射。您还需要从filter函数返回值
const作业订单列表=[
{
“id”:“5b4f7ad860dfee3b009d7452”,
“运输商”:{
“公司名称”:“BigDataMatica”,
“电子邮件”:“nirmalkumar。s@datinfi.com",
“注册号”:“nirmal89HJ”,
“公司地址”:“RSPURAM”,
“公司电话”:“8687678”,
“Yardadress”:“Pragatinagar”,
“yardPhone”:“69876876”,
“搬运商代码”:“搬运商”,
“billingAddress”:“Pragatinagar”
}
},
{
“id”:“5b501f8f60dfee3b009d7454”,
“运输商”:{
“公司名称”:“BigDataMatica”,
“电子邮件”:“nirmalkumar。s@datinfi.com",
“注册号”:“nirmal89HJ”,
“公司地址”:“RS PURAM”,
“公司电话”:“8687678”,
“Yardadress”:“Pragatinagar”,
“yardPhone”:“69876876”,
“搬运商代码”:“搬运商”,
“billingAddress”:“Pragatinagar”
}
},
{
“id”:“5b5020f360dfee3b009d7455”,
“运输商”:{
“公司名称”:“BigDataMatica”,
“电子邮件”:“sivasai。s@datinfi.com",
“注册号”:“nirmal89HJ”,
“公司地址”:“RS PURAM”,
“公司电话”:“8687678”,
“Yardadress”:“Pragatinagar”,
“yardPhone”:“69876876”,
“搬运商代码”:“搬运商”,
“billingAddress”:“Pragatinagar”
}
}
]
const haulierjobordersnames='sivasai。s@datinfi.com';
让HailerJobOrders=joborderlist&&joborderlist.filter&&joborderlist.filter((el)=>{return el.Hailer.email==HailerJobOrdersNames})
console.log(“hailerJobOrders”,hailerJobOrders)代码>您需要的是一个过滤器
,而不是映射
。您还需要从filter函数返回值
const作业订单列表=[
{
“id”:“5b4f7ad860dfee3b009d7452”,
“运输商”:{
“公司名称”:“BigDataMatica”,
“电子邮件”:“nirmalkumar。s@datinfi.com",
“注册号”:“nirmal89HJ”,
“公司地址”:“RSPURAM”,
“公司电话”:“8687678”,
“Yardadress”:“Pragatinagar”,
“yardPhone”:“69876876”,
“搬运商代码”:“搬运商”,
“billingAddress”:“Pragatinagar”
}
},
{
“id”:“5b501f8f60dfee3b009d7454”,
“运输商”:{
“公司名称”:“BigDataMatica”,
“电子邮件”:“nirmalkumar。s@datinfi.com",
“注册号”:“nirmal89HJ”,
“公司地址”:“RS PURAM”,
“公司电话”:“8687678”,
“Yardadress”:“Pragatinagar”,
“yardPhone”:“69876876”,
“搬运商代码”:“搬运商”,
“billingAddress”:“Pragatinagar”
}
},
{
“id”:“5b5020f360dfee3b009d7455”,
“运输商”:{
“公司名称”:“BigDataMatica”,
“电子邮件”:“sivasai。s@datinfi.com",
“注册号”:“nirmal89HJ”,
“公司地址”:“RS PURAM”,
“公司电话”:“8687678”,
“Yardadress”:“Pragatinagar”,
“yardPhone”:“69876876”,
“搬运商代码”:“搬运商”,
“billingAddress”:“Pragatinagar”
}
}
]
const haulierjobordersnames='sivasai。s@datinfi.com';
让HailerJobOrders=joborderlist&&joborderlist.filter&&joborderlist.filter((el)=>{return el.Hailer.email==HailerJobOrdersNames})
console.log(“hailerJobOrders”,hailerJobOrders)代码>当使用箭头函数和内部使用表达式时,您必须提及返回明确性BTW您的问题标题有点不正确。当使用箭头函数和内部使用表达式时,您必须提及返回明确性BTW您的问题标题有点不正确。