Misty island mine Help!

on line 14 it says confusing use of ‘!’. credit to @FalconX11_312 for code

function findBestItem(friend, excludedItems) {
    var items = friend.findItems();
    var bestItem = null;
    var bestItemValue = 0;
    for(var i = 0; i < items.length; i++) {
        var item = items[i];
        // indexOf searches and array for a certain element:
        var idx = excludedItems.indexOf(item);
        // If the array doesn't contain it, it returns -1
        // In that case, skip over that item as another peasant is targeting it.
        if(idx != -1) { continue; }
        // Finish the function!
        // Remember bestItemValue should be the highest item.value / distanceTo
        if (!item in excludedItems) {
            if (bestItemValue < item.value / friend.distanceTo(item)) {
                bestItemValue = item.value / friend.distanceTo(item);
                bestItem = item;
            }  
        }
    }
    return bestItem;
}

// This function checks if you have enough gold for a decoy.
function enoughGoldForDecoy() {
    return hero.gold >= 25;
}

while(true) {
    var peasants = hero.findByType("peasant");
    // Create a new array every loop.
    var claimedItems = [];
    for(var i = 0; i < peasants.length; i++) {
        var peasant = peasants[i];
        var enemy = peasant.findNearestEnemy();
        if(enemy) {
            // If the peasant is the target of the enemy
            // AND the hero has enough gold for a decoy
            if (enemy.target == peasant && hero.gold > hero.costOf("decoy")) {
                // Command a peasant to build a "decoy":
                hero.command(peasant, "buildXY", "decoy", peasant.pos.x - 2, peasant.pos.y);
                // Add a continue so the peasant doesn't collect coins when building.
                continue;
            }
            
        }
        var item = findBestItem(peasant, claimedItems);
        if(item) {
            // After an item is claimed, stick it in the claimedItems array.
            claimedItems.push(item);
            // Command the peasant to collect the coin:
            hero.command(peasant, "move", item.pos);
        }
    }
}

you’re using ’ in the code so i cant understand it
could u make it better?

oh thats just a glitch idk why id does that the ’ should be commented
P. S. this is JS if you didnt know