【发布时间】:2021-01-30 16:02:07
【问题描述】:
我有这样的回应
{
"payload":{
"count":158,
"transactionList":[
{
"_id":2410787,
"chnl":"Mobile",
"crtd_by":30001,
"crtd_dt":{
"$date":"2020-10-12T11:26:52.243Z"
},
"event_id":"1005",
"event_name":"1005",
"interface":{
"deviceInfo":{
"webOrMobile":"web"
},
"system":"EI-Platform",
"event":1005,
"src_system_name":"SNOC",
"undefined":"9842012345"
},
"locale":"en",
"nodeid":20,
"org_id":20,
"org_type":5,
"pwd":"KpR8Vp8SMRWPncdaBwMLwnsWh2E1JfoPnTE1rozmc3s=",
"rqst":"Request-Type",
"src":"i",
"status":152,
"status_track":[
{
"status":103,
"updtd_dt":{
"$date":"2020-10-12T11:26:52.243Z"
}
},
{
"status":152,
"updtd_dt":{
"$date":"2020-10-12T11:26:52.452Z"
}
}
],
"timezoneOffset":-330,
"transaction_id":2410787,
"tz":"20201012165651",
"uid":30001,
"uname":"EIADMIN",
"updtd_by":30001,
"updtd_dt":{
"$date":"2020-10-12T11:26:52.452Z"
},
"utype":730,
"status_name":"Completed",
"status_key":"status_2",
"event_description":"Bolt On/Top Up"
},
{
"_id":2410786,
"chnl":"Web",
"crtd_by":30001,
"crtd_dt":{
"$date":"2020-10-10T12:02:32.069Z"
},
"event_id":"1004",
"event_name":"1004",
"interface":{
"amount":120,
"customerName":"David Smith",
"event":1004,
"totalAmount":120,
"deviceInfo":{
"webOrMobile":"web"
},
"payment_details":{
"cash_mode":{
"status":111,
"cash":"120"
}
},
"account_no":11241212
},
"locale":"en",
"nodeid":20,
"org_id":20,
"org_type":5,
"payment_status":111,
"pwd":"KpR8Vp8SMRWPncdaBwMLwnsWh2E1JfoPnTE1rozmc3s=",
"rqst":"Create",
"src":"i",
"status":152,
"status_track":[
{
"status":103,
"updtd_dt":{
"$date":"2020-10-10T12:02:32.069Z"
}
},
{
"status":152,
"updtd_dt":{
"$date":"2020-10-10T12:02:32.319Z"
}
}
],
"timezoneOffset":-330,
"transaction_id":2410786,
"tz":"20201010120230",
"uid":30001,
"uname":"EIADMIN",
"updtd_by":30001,
"updtd_dt":{
"$date":"2020-10-10T12:02:32.319Z"
},
"utype":1,
"status_name":"Completed",
"status_key":"status_2",
"event_description":"Bill Payment"
},
{
"_id":2410762,
"chnl":"Web",
"crtd_by":30001,
"crtd_dt":{
"$date":"2020-09-22T11:15:40.631Z"
},
"event_id":"1001",
"event_name":"1001",
"interface":{
"pcardno":"8944110000000100017",
"doc_tran_value":"",
"p_lname":"Sharma",
"product_id":"PAYG01",
"p_fname":"Rakesh",
"msisdn":"7999990099",
"zipcode":"9090",
"state":"50054",
"lastname":"Sharma",
"firstname":"Rakesh",
"deviceInfo":{
"webOrMobile":"web"
},
"country":"50052",
"system":"EI-Platform",
"title":"50092",
"icc":"80990",
"phoneNumber":"9709607195",
"address":"kormangla",
"email":"no@no.com",
"event":1001,
"dob":"02-Sep-2002"
},
"locale":"en",
"nodeid":20,
"org_id":20,
"org_type":5,
"pending_at":"Head Of Sales",
"pwd":"KpR8Vp8SMRWPncdaBwMLwnsWh2E1JfoPnTE1rozmc3s=",
"rqst":"Create",
"src":"i",
"status":103,
"status_track":[],
"timezoneOffset":-330,
"transaction_id":2410762,
"tz":"20200922111540",
"uid":30001,
"uname":"EIADMIN",
"updtd_by":30001,
"updtd_dt":{
"$date":"2020-09-22T11:15:40.875Z"
},
"utype":1,
"status_name":"In Progress",
"status_key":"status_1",
"event_description":"Prepaid Form"
}
]
}
}
我需要一个包含event_description 和count 的数组,即event_description 来自transactionsList,count 是基于事务列表中event_description 的出现次数。请检查我尝试过的以下代码,但没有成功。你能帮帮我吗?
var transactionList = response.payload.transactionList
var events = []
for (const transaction in transactionList) {
let existedIndex = events.findIndex(({event}) => event['event_description'] == transaction['event_description'])
if (existedIndex && existedIndex >= 0) {
events[existedIndex]['count'] = events[existedIndex]['count'] + 1
} else {
let newEvent = { 'event_description': transaction['event_description'], 'count': 1 }
events.push(newEvent);
}
}
结果数组应该包含对象,每个对象都有两个键,一个是count,它是event-description 的出现次数,另一个是event_description 本身。
【问题讨论】:
-
将
let existedIndex = events.findIndex(({event}) => event['event_description'] == transaction['event_description'])更新为let existedIndex = events.findIndex((event) => event['event_description'] == transaction['event_description']) -
@SaachiTech,请您充分尝试并帮助我,因为我是
react-native的新手。我按照您的提示进行了尝试,但没有得到预期的结果。
标签: react-native dictionary for-loop iteration