Inventory update problem

Hey Guys
I tried to work on this challenge but it seems that doesn’t work
what’s wrong with my code?

function updateInventory(arr1, arr2) {
    // All inventory must be accounted for or you're fired!
    for (var i = 0; i < arr1.length; i++) {
      for (var j = 0; j < arr1[i].length; j++) {
        for (var k = 0; k < arr2.length; k++) {
        arr1.forEach(function(item) {
          if (arr1.indexOf(arr1[i][j]) > 0 && arr2[k].indexOf(item) > 0) {
            arr2[k][item].push(arr1[i][j]);
            return arr1;
          }
        });
        }
        
      }
    }
    return arr1;
}




// Example inventory lists
var curInv = [
    [21, "Bowling Ball"],
    [2, "Dirty Sock"],
    [1, "Hair Pin"],
    [5, "Microphone"]
];

var newInv = [
    [2, "Hair Pin"],
    [3, "Half-Eaten Apple"],
    [67, "Bowling Ball"],
    [7, "Toothpaste"]
];

updateInventory(curInv, newInv);

Surround your code in backticks ```

function updateInventory(arr1, arr2) {
    // All inventory must be accounted for or you're fired!
    for (var i = 0; i < arr1.length; i++) {
      for (var j = 0; j < arr1[i].length; j++) {
        for (var k = 0; k < arr2.length; k++) {
        arr2[k].forEach(function(item) {
          if (!arr2[k].includes(arr1[i])) {
            arr1.push(arr2[k]);
            return arr1;
          }
        });
        }

      }
    }
    arr1.sort(function(a , b) {
        if (a[1] > b[1] ) {
            return 1;
        } 
        if (a[1] < b[1]) {
            return -1;
        }
        return 0;
    });
    return arr1;
}

Thanks alot for your response I got what you mean by that I tried to turn on another way but kept using forEach I tried to use includes against the second array to see if it exists there or not but that seems that doesn’t work it works in first and third option but not the other
can you help me in this please
Thanks