Вернуть типы данных в объекте

Пытаюсь врубиться в объекты джаваскрипта. Помогите, пожалуйста, разобраться с задачей. Два дня голову ломаю. Необходимо вернуть тип данных, которые получает функция из объекта robot. Данный код возвращает те же данные, что и получает. Например:

const robot = {
  version: 16,
  name: 'Cleaner 3000',
  coords: [345, 12],
};

function getRobotSchema(robot) {
  let result = Object.entries(robot);
  for (let i = 0; i <= result; i++) {
    result[i][1] = typeof result[i][1];
  }
  console.log(result);
}

// Должно получиться 
// result = {
//  version: 'number',
//  name: 'string',
//  coords: 'object',
// };

// А получается то же, что и на входе
getRobotSchema(robot);

Что я забыла сделать? Почему на typeof ноль реакции?


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

Автор решения: Grundy

В данном месте

i <= result

число сравнивается с массивом, а должно было сравниваться с его длинной.

Из-за этого в цикл ни разу не заходит и объект result не меняется.

Так же стоит обратить внимание на то, что условие должно быть строгим, иначе будет выход за границы массива, так как индексация массивов начинается с 0

const robot = {
  version: 16,
  name: 'Cleaner 3000',
  coords: [345, 12],
};

function getRobotSchema(robot) {
  let result = Object.entries(robot);
  for (let i = 0; i < result.length; i++) {
    result[i][1] = typeof result[i][1];
  }
  console.log(result);
}

// Должно получиться 
// result = {
//  version: 'number',
//  name: 'string',
//  coords: 'object',
// };

// А получается то же, что и на входе
getRobotSchema(robot);

→ Ссылка