Looking for some help with this Javascript code which is part of processing a JSON API call ...
Firstly some background - I'm attempting to process a nested array of events relating to a supplied address. In the array there are multiple events, some with the same timestamp. I am trying to iterate through the array and create a new object containing the event. Where a duplicate timetamp is found, the duplicate event should be added to the existing new object I created.
Problem - in the part regarding adding the event to the existing array of events in my new object - the push appears to work and yet the console.log entry shows some confusing information. It suggests that there's 2 items in the array, but when the array expanded - there isn't. When the front end code processes my new obbjects it also only find 1 item in the array.
Just registered so can't embed images. Link shows the console screenshot and code is here:
function processTransactions(address, json){
  // Get the tranasction array at data.items 
  var transactions = json.data.items;
  var txList = new Array();
  // For each item iterate through the log_events array and keep only those we match with (To or From)
  for (let i=0; i<transactions.length; i++){
    // tx is the current transaction being processed
    var tx = transactions[i];
    // Loop through the array of event logs in this transaction
    // looking for ones matching our address in the event logs
    for( let j=0; j<tx.log_events.length; j++){
      // j is an event in the array of events
      // Add this event to our processed List of events
      var e = tx.log_events[j];
      var a = e.raw_log_topics;
      var expr = new RegExp(address.substring(2));
      // Check if the address is contained in contents of raw_log_events
      if (a.find(value => expr.test(value))){
        if (txList.some(ev => ev.block_signed_at === e.block_signed_at)){
          // Matching object found in txList
          console.log ("Match found using timestamp");
          //console.log(txList[index].events);
          var o = txList.find( ev => ev.block_signed_at === e.block_signed_at );
          o.events.push(e);
          console.log(o);
          console.log("ending match found")
        } else {
          // No match found, create object and add to txList
          var o = {
            block_signed_at: e.block_signed_at,
            // Add unixtime timestamp to the object for display and sorting in frontend 
            block_signed_at_timestamp: new Date(e.block_signed_at).valueOf() / 1000,
            events: []
          }
          o.events.push(e);
          txList.push(o);
        };
        
      } // End of if
    } // End of for loop
  } // End of the for loop
  return {transactions: txList};
}
