-
Notifications
You must be signed in to change notification settings - Fork 71
Expand file tree
/
Copy pathobject.size.json
More file actions
1 lines (1 loc) · 934 Bytes
/
object.size.json
File metadata and controls
1 lines (1 loc) · 934 Bytes
1
{"title":"Get Object Size","name":"Object Size","description":null,"source":"let R = require('ramda');\n\n// objSize :: Object -> Number\nconst objSize = R.nAry(1, R.pipe(\n R.when(R.is(Object), R.keys),\n R.when(R.is(Boolean), R.cond([[R.equals(false), R.always(null)], [R.T, R.always(1)]])),\n R.when(R.is(Number), R.toString),\n R.ifElse(R.isNil, R.always(0), R.length)\n));\nconsole.log(objSize()); // 0\nconsole.log(objSize(undefined)); // 0\nconsole.log(objSize(null)); // 0\nconsole.log(objSize(false)); // 0\nconsole.log(objSize(true)); // 1\nconsole.log(objSize('')); // 0\nconsole.log(objSize('foo')); // 3\nconsole.log(objSize(0)); // 1\nconsole.log(objSize(13)); // 2\nconsole.log(objSize(101)); // 3\nconsole.log(objSize(0.01)); // 4\nconsole.log(objSize({})); // 0\nconsole.log(objSize({foo:undefined, bar:undefined})); // 2\nconsole.log(objSize([])); // 0\nconsole.log(objSize([undefined, undefined])); // 2\n"}