Разбор

Функция size получает размер массива, объекта или строки.

В зависимости от типа val функция возвращает: для массивов — свойство length; для объектов — length, size (если доступно) или количество ключей через Object.keys(); для строк — размер в байтах через объект Blob. Во всех остальных случаях возвращает 0.

const size = (val) =>
  // Если val массив
  Array.isArray(val)
    ? val.length
    : // Если val объект
    val && typeof val === "object"
    ? val.size || val.length || Object.keys(val).length
    : // Если val строка
    typeof val === "string"
    ? new Blob([val]).size
    : 0;

// Пример:

size([1, 2, 3]); // 3
size('some text'); // 9
size({ one: 1, two: 2, three: 3 }); // 3