Функция size
получает размер массива, объекта или строки.
Получив тип val
(array
, object
или string
) используем свойство length
для массивов. Далее, значение length
или size
(если доступно), или количество ключей для объектов. Затем size
объекта Blob
, созданного из val
для строк. С помощью split('')
он разбивает строки на массив символов и возвращает его длину. Во всех других случаях функция возвращает 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