数组、对象或字符串的大小

获取数组、对象或字符串的大小。

  • 获取val的类型(arrayobjectstring)。
  • 对于数组,使用Array.prototype.length属性。
  • 对于对象,如果有lengthsize值,则使用该值;否则使用对象的键的数量。
  • 对于字符串,使用从val创建的Blob对象size属性。
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