Restless dead - javascript help

I cannot make my soldiers attack

let attack = () => {
    var enemy = hero.findNearestEnemy();
    if (enemy && enemy.health > 0) {
        hero.attack(enemy);
    }
};
let collect = () => {
    var items = hero.findItems();
    for (let i = 0; i < items.length; i++) {
        let item = items[i];
        let post = item;
        hero.move(post.pos);
        break;
    }
};
let poss = () => {
    let togo = [];
    togo[0] = {
        x: 61,
        y: 20
    };
    togo[1] = {
        x: 20,
        y: 39
    };
    return togo;
};
let sold = () => {
    var flag = hero.findFlag("green");
    while (flag) {
        var enemies = hero.findEnemies();
        let friends = hero.findFriends();
        for (let i = 0; i < enemies.length; i++) {
            for (let j = 0; i < friends.length; j++) {
                let friend = friends[j];
                let enemy = enemies[i];
                hero.command(friend[i], "attack", enemy[i]);
            }
        }
    }
};

let summon = () => {
    while (true) {
        if (hero.gold > 24) {
            hero.summon("soldier");
        } else {
            return false;
        }
    }
};

var count = 1;
while (count == 1) {
    let enemy = hero.findNearestEnemy();
    let item = hero.findNearestItem();
    let possx = poss();
    hero.move(possx[0]);
    if (enemy && enemy.health > 1) {
        hero.attack(enemy);
    }
    if (item) {
        collect();
        count++;
    }
}

// console log
hero.say("message");
hero.moveXY(51, 26);
hero.moveXY(49, 22);
// console log
hero.say("message");
hero.moveXY(19, 40);


summon();
var flag = hero.findFlag("black");
if (flag) {
    sold();
}

Hrmm. Is there an error that shows up in the code, or is it one of those things that functions, just not in the manner that you want it to?