Published
Edited
Dec 23, 2018
1 fork
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
data = [
...tx.repeatedly(
() => ({
firstName: faker.name.firstName(),
lastName: faker.name.lastName(),
balance: parseFloat(faker.finance.amount()),
street: faker.address.streetAddress(),
city: faker.address.city(),
jobTitle: faker.name.jobTitle(),
jobType: faker.name.jobType(),
age: faker.random.number(100) + 15
}),
5000
)
]
Insert cell
Insert cell
jobAgeQuery = query(
[
// in the whole dataset
// 1. look at everyone's "jobType"
// 2. keep the ones that test true on the regexp: /engineer/i
// 3. group the result as "engineers"
["jobType", /engineer/i, "engineers"],
// in "engineers"
// 1. look at everyone's "age"
// 2. keep the ones that are younger than 30
// 3. group the result as "tech youngsters"
["engineers", "age", x => x < 30, "tech youngsters"]
],
data
)
Insert cell
Insert cell
balanceQuery = query([
["balance", x => x < 500, "low balance"],
["balance", x => x >= 500, "doing alright"]
])
Insert cell
balanceQueryResult = balanceQuery(data)
Insert cell
Insert cell
query(
[
["firstName", "Keaton", "theKeatons"], // string equality
["age", 50, "fiftyYearOlds"], // number equality
// selector composition
[
"fiftyYearOlds", // from previous selector
"jobType",
"Analyst", // predicate to match
"querySelector_fiftyYearOldAnalysts"
],
// same result using a function
[
({ age, jobType }) => age == 50 && jobType == "Analyst",
"function_fiftyYearOldAnalysts"
]
],
data
)
Insert cell
Insert cell
selectorFn.rels()
Insert cell
Insert cell
query([[123]], []) // oh no!
Insert cell
Insert cell
// selectorFn.add("number", selector => ctx =>
// (ctx.myResult = { foo: 42, originalSelector: selector })
// )
Insert cell
Insert cell
// query([[123]], [])
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
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