Gets the size of an array, object or string.

Get type of val (array, object or string).
Use length property for arrays.
Use length or size value if available or number of keys for objects.
Use size of a Blob object created from val for strings.
Split strings into array of characters with split('') and return its length.

代码片段


const size = val =>
  Array.isArray(val)
    ? val.length
    : val && typeof val === 'object'
      ? val.size || val.length || Object.keys(val).length
      : typeof val === 'string'
        ? new Blob([val]).size
        : 0;

使用样例

size([1, 2, 3, 4, 5]); // 5
size('size'); // 4
size({ one: 1, two: 2, three: 3 }); // 3