我无法创建此逻辑。需要动态添加index和subIndex字段
I am unable to create this logic. Need to add index and subIndex fields dynamically
我无法创建此逻辑,已尝试数小时。我只需要添加 index 和 subIndex 属性,并增加不同 eventTicketId 的行为。
对于单票,例如eventTicketId:461。我必须有 2 个字段,例如第一张票及其第一个值,然后是第一张票及其第二个值。其他门票也是如此,例如 eventTicketId:463 它将像第一张门票及其第一个价值,第一张门票及其第二个价值,第二张门票及其第一个价值以及最后第二张门票及其第二个价值。
原始数组:
let ticketArray = [
{
"eventTicketId": "461",
"title": "Name 1",
"value": "salman",
"type": 'name'
},
{
"eventTicketId": "461",
"title": "CNIC 1",
"value": "31221321",
"type": 'cnic'
},
{
"eventTicketId": "462",
"title": "Name 1",
"value": "asdfasdf",
"type": 'name'
},
{
"eventTicketId": "462",
"title": "CNIC 1",
"value": "31221321",
"type": 'cnic'
},
{
"eventTicketId": "463",
"title": "Name 1",
"value": "Adsadsa",
"type": 'name'
},
{
"eventTicketId": "463",
"title": "CNIC 1",
"value": "321312312",
"type": 'cnic'
},
{
"eventTicketId": "463",
"title": "Name 2",
"value": "Adsadsa",
"type": 'name'
},
{
"eventTicketId": "463",
"title": "CNIC 2",
"value": "133213",
"type": 'cnic'
}];
所需数组:
let ticketArray = [
{
"eventTicketId": "461",
"title": "Name 1",
"value": "salman",
"type": 'name',
"index": "1",
"subIndex": "1"
}, {
"eventTicketId": "461",
"title": "CNIC 1",
"value": "31221321",
"type": 'cnic',
"index": "1",
"subIndex": "2"
},
{
"eventTicketId": "462",
"title": "Name 1",
"value": "asdfasdf",
"type": 'name',
"index": "1",
"subIndex": "1"
},
{
"eventTicketId": "462",
"title": "CNIC 1",
"value": "31221321",
"type": 'cnic',
"index": "1",
"subIndex": "2"
},
{
"eventTicketId": "463",
"title": "Name 2",
"value": "Adsadsa",
"type": 'name',
"index": "1",
"subIndex": "1"
},
{
"eventTicketId": "463",
"title": "CNIC 2",
"value": "133213",
"type": 'cnic',
"index": "1",
"subIndex": "2"
},
{
"eventTicketId": "463",
"title": "Name 1",
"value": "Adsadsa",
"type": 'name',
"index": "2",
"subIndex": "1"
},
{
"eventTicketId": "463",
"title": "CNIC 1",
"value": "321312312",
"type": 'cnic',
"index": "2",
"subIndex": "2"
},];
我制作了一个片段,其中包含我认为可能会解决您的问题的内容。
let ticketArray = [
{
"eventTicketId": "461",
"title": "Name 1",
"value": "salman",
"type": 'name'
},
{
"eventTicketId": "461",
"title": "CNIC 1",
"value": "31221321",
"type": 'cnic'
},
{
"eventTicketId": "462",
"title": "Name 1",
"value": "asdfasdf",
"type": 'name'
},
{
"eventTicketId": "462",
"title": "CNIC 1",
"value": "31221321",
"type": 'cnic'
},
{
"eventTicketId": "463",
"title": "Name 1",
"value": "Adsadsa",
"type": 'name'
},
{
"eventTicketId": "463",
"title": "CNIC 1",
"value": "321312312",
"type": 'cnic'
},
{
"eventTicketId": "463",
"title": "Name 2",
"value": "Adsadsa",
"type": 'name'
},
{
"eventTicketId": "463",
"title": "CNIC 2",
"value": "133213",
"type": 'cnic'
}];
const tickets = {};
const result = ticketArray.map(ticket => {
let subIndex = 1
if (tickets[ticket.eventTicketId]) {
tickets[ticket.eventTicketId] += 1
} else {
tickets[ticket.eventTicketId] = 1
}
let index = Math.ceil(tickets[ticket.eventTicketId] / 2);
subIndex = tickets[ticket.eventTicketId] % 2 == 0 ? 2 : 1
return {...ticket, index, subIndex}
})
console.log(result)
我无法创建此逻辑,已尝试数小时。我只需要添加 index 和 subIndex 属性,并增加不同 eventTicketId 的行为。
对于单票,例如eventTicketId:461。我必须有 2 个字段,例如第一张票及其第一个值,然后是第一张票及其第二个值。其他门票也是如此,例如 eventTicketId:463 它将像第一张门票及其第一个价值,第一张门票及其第二个价值,第二张门票及其第一个价值以及最后第二张门票及其第二个价值。
原始数组:
let ticketArray = [
{
"eventTicketId": "461",
"title": "Name 1",
"value": "salman",
"type": 'name'
},
{
"eventTicketId": "461",
"title": "CNIC 1",
"value": "31221321",
"type": 'cnic'
},
{
"eventTicketId": "462",
"title": "Name 1",
"value": "asdfasdf",
"type": 'name'
},
{
"eventTicketId": "462",
"title": "CNIC 1",
"value": "31221321",
"type": 'cnic'
},
{
"eventTicketId": "463",
"title": "Name 1",
"value": "Adsadsa",
"type": 'name'
},
{
"eventTicketId": "463",
"title": "CNIC 1",
"value": "321312312",
"type": 'cnic'
},
{
"eventTicketId": "463",
"title": "Name 2",
"value": "Adsadsa",
"type": 'name'
},
{
"eventTicketId": "463",
"title": "CNIC 2",
"value": "133213",
"type": 'cnic'
}];
所需数组:
let ticketArray = [
{
"eventTicketId": "461",
"title": "Name 1",
"value": "salman",
"type": 'name',
"index": "1",
"subIndex": "1"
}, {
"eventTicketId": "461",
"title": "CNIC 1",
"value": "31221321",
"type": 'cnic',
"index": "1",
"subIndex": "2"
},
{
"eventTicketId": "462",
"title": "Name 1",
"value": "asdfasdf",
"type": 'name',
"index": "1",
"subIndex": "1"
},
{
"eventTicketId": "462",
"title": "CNIC 1",
"value": "31221321",
"type": 'cnic',
"index": "1",
"subIndex": "2"
},
{
"eventTicketId": "463",
"title": "Name 2",
"value": "Adsadsa",
"type": 'name',
"index": "1",
"subIndex": "1"
},
{
"eventTicketId": "463",
"title": "CNIC 2",
"value": "133213",
"type": 'cnic',
"index": "1",
"subIndex": "2"
},
{
"eventTicketId": "463",
"title": "Name 1",
"value": "Adsadsa",
"type": 'name',
"index": "2",
"subIndex": "1"
},
{
"eventTicketId": "463",
"title": "CNIC 1",
"value": "321312312",
"type": 'cnic',
"index": "2",
"subIndex": "2"
},];
我制作了一个片段,其中包含我认为可能会解决您的问题的内容。
let ticketArray = [
{
"eventTicketId": "461",
"title": "Name 1",
"value": "salman",
"type": 'name'
},
{
"eventTicketId": "461",
"title": "CNIC 1",
"value": "31221321",
"type": 'cnic'
},
{
"eventTicketId": "462",
"title": "Name 1",
"value": "asdfasdf",
"type": 'name'
},
{
"eventTicketId": "462",
"title": "CNIC 1",
"value": "31221321",
"type": 'cnic'
},
{
"eventTicketId": "463",
"title": "Name 1",
"value": "Adsadsa",
"type": 'name'
},
{
"eventTicketId": "463",
"title": "CNIC 1",
"value": "321312312",
"type": 'cnic'
},
{
"eventTicketId": "463",
"title": "Name 2",
"value": "Adsadsa",
"type": 'name'
},
{
"eventTicketId": "463",
"title": "CNIC 2",
"value": "133213",
"type": 'cnic'
}];
const tickets = {};
const result = ticketArray.map(ticket => {
let subIndex = 1
if (tickets[ticket.eventTicketId]) {
tickets[ticket.eventTicketId] += 1
} else {
tickets[ticket.eventTicketId] = 1
}
let index = Math.ceil(tickets[ticket.eventTicketId] / 2);
subIndex = tickets[ticket.eventTicketId] % 2 == 0 ? 2 : 1
return {...ticket, index, subIndex}
})
console.log(result)