Не могу понять, в чём фактическая разница между
return ["ID DATA", parseInt(oldIdData[0] + oldIdData[1], 2) + 1];
и
let resultingIdData = ["ID DATA", parseInt(oldIdData[0] + oldIdData[1], 2) + 1];
return resultingIdData;
Почему первый вариант выдаёт ошибку, а второй - нет? На мой взгляд второй ("правильный") вариант - только нерациональное увеличение кода и введение ещё одной совершенно лишней переменной. Тем более, что если убрать прибавление единицы, то ошибка исчезает:
return ["ID DATA", parseInt(oldIdData[0] + oldIdData[1], 2)];
Ошибка обозначается при редактировании кода в IDE "JetBrains PhpStorm 2020.1" и описывается как "Indexed expression can be null or undefined", при самом выполнении кода в браузерах "Mozilla Firefox" и "Google Chrome" ошибка не возникает, результат выполнения корректен. Также и сама IDE говорит чушь, так как логика кода такова, что
oldIdData[0] и
oldIdData[1] при выполнении приведённых строк кода
точно содержат ненулевые корректные строки, результат
parseInt(oldIdData[0] + oldIdData[1], 2) точно даст число.