Higher-Order Array Methods
some and every
Ask whether one or all elements pass a test.
some-every
`some` answers whether at least one element passes the callback test. `every` answers whether all elements pass it.
some and every
some_every.js
Replay: real traced execution (multi-file project)
const limit = 10;
const levels = [8, 9, 10];
const anyExact = levels.some((level) => level === limit);
const allWithin = levels.every((level) => level <= limit);
console.log("limit=" + limit);
console.log("anyExact=" + anyExact);
console.log("allWithin=" + allWithin);
const limit = 6;
const levels = [8, 9, 10];
const anyExact = levels.some((level) => level === limit);
const allWithin = levels.every((level) => level <= limit);
console.log("limit=" + limit);
console.log("anyExact=" + anyExact);
console.log("allWithin=" + allWithin);
const limit = 12;
const levels = [8, 9, 10];
const anyExact = levels.some((level) => level === limit);
const allWithin = levels.every((level) => level <= limit);
console.log("limit=" + limit);
console.log("anyExact=" + anyExact);
console.log("allWithin=" + allWithin);
limit ← 10, levels ← 8,9,10, anyExact ← true, allWithin ← true
1const limit→ 10 = 10; //@limit=6, 122const levels→ 8,9,10 = [8, 9, 10];3const anyExact→ true = levels8,9,10.some((level) => level === limit);4const allWithin→ true = levels8,9,10.every((level) => level <= limit);56console.log("limit=" + limit10);7console.log("anyExact=" + anyExacttrue);8console.log("allWithin=" + allWithintrue);outputlimit=10 anyExact=true allWithin=true
limit ← 6, levels ← 8,9,10, anyExact ← false, allWithin ← false
1const limit→ 6 = 6;2const levels→ 8,9,10 = [8, 9, 10];3const anyExact→ false = levels8,9,10.some((level) => level === limit);4const allWithin→ false = levels8,9,10.every((level) => level <= limit);56console.log("limit=" + limit6);7console.log("anyExact=" + anyExactfalse);8console.log("allWithin=" + allWithinfalse);outputlimit=6 anyExact=false allWithin=false
limit ← 12, levels ← 8,9,10, anyExact ← false, allWithin ← true
1const limit→ 12 = 12;2const levels→ 8,9,10 = [8, 9, 10];3const anyExact→ false = levels8,9,10.some((level) => level === limit);4const allWithin→ true = levels8,9,10.every((level) => level <= limit);56console.log("limit=" + limit12);7console.log("anyExact=" + anyExactfalse);8console.log("allWithin=" + allWithintrue);outputlimit=12 anyExact=false allWithin=true