function calculater(object) {
const type = typeof object;
switch (type) {
case 'number': {
return 8;
}
case 'string': {
return object.length * 2;
}
case 'boolean': {
return 4;
}
case 'object': {
if (Array.isArray(object)) {
object.map(calculater).reduce(c, b => c + b, 0);
} else {
return sizeofobject(object);
}
}
}
}
let seen = new WeakSet();
function sizeofobject(object) {
if (object === null) {
return 0;
}
let bytes = 0;
const properties = Object.keys(object);
for (let i = 0; i < properties.length; i++) {
const key = properties[i];
if (typeof object[key] === 'object' && object[key] !== null) {
if (seen.has(object[key])) continue;
seen.add(object[key])
}
bytes += calculater(key);
bytes += calculater(object[key]);
}
return bytes
}
const obj = {
name:'liqiu',
age:25
}
console.log(calculater(obj))
计算字节数
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 定长字节数组(Fixed-size byte arrays)之间的转换 定长字节数组我们可以通过bytes0 ~ ...
- 智能合约最大字节数 在Solidity中,EIP 170将contract的最大大小限制为24 KB 。因此,如果...