我有一些以字节为单位的数据。我需要在图表上将这些值绘制为人类可读的标签(例如 2.5KB、14MB 等),并需要帮助实现函数(输入数据-实际值,输出-人类可读字符串)。
我已经编写了这样的函数,但我想要更优雅的实现方法。
function tickFormatter(value, type) {
var suffix = (type == "bytes") ? ['B', 'KB', 'MB', 'GB'] : ['', 'K', 'M', 'G']
if(value > (1024 * 1024 * 1024 * 1024)) {
return (value / (1024 * 1024 * 1024 * 1024)).toFixed(2) + suffix[3]
} else if(value > (1024 * 1024 * 1024)) {
return (value / (1024 * 1024 * 1024)).toFixed(2) + suffix[2]
} else if (value > (1024 * 1024)) {
return (value / (1024 * 1024)).toFixed(2) + suffix[1]
} else {
return value.toFixed(2) + suffix[0]
}
}
var e = Math.floor(Math.log(Math.abs(value)) / Math.log(1000));
,那么你就能够显示负数值了。 - gor