Почему метод array.push в цикле while не добавляет значения в массив?
const a = tns.map(el => el.type);
По вашему коду:
1. Условие tns[i] == !undefined возвращает false
2. Выражение [i]['type'] возвращает undefined.
Параметр цикла i где-то строчный, где-то заглавной буквой. В JS это разные идентификаторы.