Public
Edited
Jul 26, 2023
1 fork
Insert cell
values = [
{
ones: 2.3456,
tens: 23.232,
hundreds: 123.23,
thousands: 2332.43,
mills: 1212243
}
].map((d) => {
Object.keys(d).forEach((k) => (d[k] = formatValue(d[k])));
return d;
})
Insert cell
viewof table = Inputs.table(values)
Insert cell
function formatValue(aVal, aStatInfo = { valPrefix: "$", valSuffix: "" }) {
let aFormattedVal = aStatInfo.valPrefix;

if (aVal >= 1000) {
if (aVal >= 1000000) {
if (aVal / 1000000 === Math.round(aVal / 1000000)) {
aFormattedVal += `${Math.floor(aVal / 1000000)}m`;
} else {
aFormattedVal += `${Math.floor(aVal / 1000000)}.${(
Math.floor(aVal % 1000000) / 100000
).toFixed(0)}m`;
}
} else {
aFormattedVal += `${Math.floor(aVal / 1000)}k`;
}
} else {
aFormattedVal += `${aVal}`;
}

aFormattedVal += aStatInfo.valSuffix;

return aFormattedVal;
}
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more