Проблем с достъпване на масиви в Array Practical Tasks (Javascript)

Здравейте,
Реших си по-голямата част от задачите свързани с Variables, Conditional Statements и Loops, като нямах проблем да достъпвам input-а с командата gets(), най-вече заради това, че трябваше да си взимам всяка променлива поотделно.
До момента обаче безуспешно успявам да си взема масивите в една променлива в практическите задачи с Arrays. Да вземем за пример първата задача - Sort Numbers. Това е кода, който изпозвах - https://pastebin.com/CLTxuJmR.
Както може да се види, си създавам променлива-масив, в която в последствие push-вам числата от input-а даден от judge, като във VS Code ми дава правилната поредност, независимо от input-а. В judge обаче ми го изкарва като грешно, като във всеки един тест твърди, че output-а ми е NaN, 0, 0, 0, 0.
Предполагам, че проблема идва оттам, че има друг начин, по който да се взима целия масив от input-a и да се вкарва в нова променлива. Ще помоля да ми обясните как става.
Поздрави!

Здравей,

Всеки input, който взимаш с gets() идва под формата на стринг - независимо дали е число, стринг или масив. Ако в условието на задачата пише, че на даден ред ще получиш масив от числа, този масив ще дойде под формата на стринг. В твоя случай правилният input би бил:

let input = ['2, 3, 1, 5, 6'];
1 Like

Не мисля, че това има значение в случая. Както се вижда от кода ми, така или иначе преврърщам параметрите от дадения input в числа.
Проблема ми по-скоро, е че gets() взима само първия елемент от масива, а на мен ми трябва начин да взема целия масив от числа/стринг, които да се подават от input-a. Все пак в повечето от задачите няма конкретен брой числа/string, които ще присъстват в input-a, така че няма как да ги взимам елемент по елемент до фиксирания index.
Както се вижда в кода ми, взимам числата от input-a чрез for loop и обхождам масива от input-a, докато елементите в него не свършат и ги прибавям в новосъздаден масив. Във VS CODE всичко е наред с този подход, но judge по някаква причина не харесва този подход.
Ако ми дадете примерен код за задачата или поне код, който да достъпи числата от input-a и да ги вкара в нов масив, ще ми е от голяма полза. Целта ми не е някой да ми реши задачата, а да видя подхода да си реша и останалите задачи и да съм максимално подготвен за утрешния изпит.
Благодаря. :slight_smile:

Здравей,

Както вече казах, входът, който ще получиш, е масив под формата на стринг от числа, разделени от запетая и интервал.

let input = [
  '2, 3, 1, 5, 6' // string, not array
];

Това е начинът, по който се подават данните от judge и твоята задача е да вземеш този стринг с gets(), да го конвертираш в масив от числа и останалата част от решението ти вече трябва да работи правилно.

Чудесно, и ако не е проблем да попитам за трети път, как се взима този стринг(не масив) от input-a? Например judge ще приеме ли за валидно ако го взема по следния начин: let newArr = input.gets()?

Здравей,

Инпутът се взима с gets(), т.е. ако го запазиш в променлива по този начин:

let input = [
  '2, 3, 1, 5, 6' // string, not array
];

let arrayAsString = gets(); // equivalent to let arrayAsString = '2, 3, 1, 5, 6'

Част от задачата е да конвертираш този стринг в масив, примерно с методи на масиви като .split()

Ясно, благодаря. :slight_smile: