Public
Edited
Apr 22, 2024
28 stars
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
digits = d3.range(10)
Insert cell
numbers = d3.cross(digits, digits, digits, digits)
Insert cell
hi = number => number.slice().sort((a, b) => b - a)
Insert cell
hi([2, 1, 3, 4])
Insert cell
lo = number => number.slice().sort((a, b) => a - b)
Insert cell
lo([2, 1, 3, 4])
Insert cell
value = number =>
((+number[0] * 10 + +number[1]) * 10 + +number[2]) * 10 + +number[3]
Insert cell
value([2, 1, 3, 4])
Insert cell
step = number =>
(value(hi(number)) - value(lo(number)) + 10000)
.toString()
.slice(1)
.split("")
.map(d => +d)
Insert cell
step([2, 1, 3, 4])
Insert cell
seq = number => {
let n,
seq = [];
do {
seq.push(number);
n = number;
number = step(n);
} while (n.join("") !== number.join(""));

return seq;
}
Insert cell
seq([2, 1, 3, 4])
Insert cell
count = number => seq(number).length - 1
Insert cell
count([2, 1, 3, 4])
Insert cell
Insert cell
d3 = require("d3@5", "d3-selection@2.0.0-rc.2", "d3-array@2")
Insert cell
import { checkbox } from "@jashkenas/inputs"
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