Не видит элемент класса

я на js написал мини сортировщик:

  for (let j=db.length-1; j >= 0; j--) {
    if (db[j].balance > db[j-1].balance) {
      db[j] = [db[j-1], db[j-1] = db[j]][0];
    }
  }
}

он на node js, и есть массив db = [{balance:100},{balance: 200}, и т.д.]

Он должен сортировать, но выдает такую ошибку:

    at Object.<anonymous> (C:\bot - разработка\bot.js:80:33)
    at Module._compile (internal/modules/cjs/loader.js:1123:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10)
    at Module.load (internal/modules/cjs/loader.js:972:32)
    at Function.Module._load (internal/modules/cjs/loader.js:872:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47

Причем там все есть и должно вроде работать.


Ответы (1 шт):

Автор решения: Andrey RF

У тебя j доходит до 0, а в операторе if ты пытаешься достать j-1, которого нет в массиве. Тебе нужно делать проверку j>0, тогда j-1 будет максимум 0, и ты не будешь выходить за пределы массива.

→ Ссылка