Hey there.
Your basic game workflow should work.
I have a concern though. The third array is more like a database than a dynamic array. I would suggest using the CSV plugin to do that, so you could access the datas with something more clear to read (column names is realy nice when you have lots of data for each items, plus it's easier to check/complete/modify item stats through Excel).
Now let's take a look through your actions :
o Player kills monster > call function "handle loot", passing monster.UID as parameter, before destruction of the monster object
o Computer does a random number roll. > handled by the function
o If the number roll is a success, the monster spawns a random item > handled by the function. spawn an item on the monster coordinates.
o When the player collides("picks up") the item, the items corresponding number is added to the Slot array.
Player On collision with Item, call function "pick up item" passing item.UID as parameter.
The pick up function would first look for the first empty slot, then if it found one store the item in it, destroy the item object from the game. You should have a function that would update the "slot" display on the screen to call here.
Then, you'll need a new "item object" (let's call it item2), different from the first one as it will be in your inventory, and would have a drag-drop behavior.
item2 on drop on equipSlot : if the equip slot isn't empty, handle the unequipment of the object first. Then, update the EquipSlot with the caracteristics of the new item. Last, remove item from inventory/destroy the item2 object.
I tried to described a little more what would be the script-flow, hope it helps.