Although the language won't accept arithmetic names unless you are actually making a string out of it, I think you will have better semantic by using arrays instead of many simlar-named variables.
For example, if there is many indexed obj.warehouse
, you should initialize it as an array:
obj.warehouse=[];
Then, to put something into it:
obj.warehouse[x] = inventory.inventory_obj[x].warehouse;
It will be easier for you to access it later because you won't have to concatenate every time you want to access a warehouse. Also, as long as there are "concatenating" accesses, debugging can be a pain whenever something is renamed.