Adding multiple items of different categories to one object
With regards to the last couple of lines, one thing you could do from a functional perspective is to bind the first argument like so:

function bindFirst(func, firstArgument) {
    return function(...arguments) {
        return func(firstArgument, ...arguments);
    }
}

const addToHead = bindFirst(addItem, 'head');

addToHead('head_item_1', 100, 'img');
...


You could also use data structure like a Map and loop through it:

let newItems = new Map([
    [
        'head',
        [{
            name: 'head_item_1',
            cost: 100,
            img: 'img'
        },
        {
            name: 'head_item_1',
            cost: 100,
            img: 'img'
        }]
    ], [
        'cape',
        [{
            name: 'cape_item_1',
            cost: 100,
            img: 'img'
        },
        {
            name: 'cape_item_1',
            cost: 200,
            img: 'img'
        }]
    ]
]);

items.forEach((items, slot) =&gt; {
    const addToSlot = bindFirst(addItem, slot);
    items.forEach(item =&gt; {
        addToSlot(item.name, item.cost, item.img);
    });
});


Have you considered that maybe equipment and item should be classes? A class called Equipment could have a method like addItem(slot, item) where item is an object of type Item, which has a constructor with a similar signature to your addItem function.