femto-fsrs
Version:
A minimalistic implementation of FSRS 5 spaced repetition algorithm
54 lines • 3.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const _1 = require(".");
const { newCard, gradeCard } = (0, _1.createDeck)();
const ratings = [
_1.Grade.GOOD,
_1.Grade.GOOD,
_1.Grade.GOOD,
_1.Grade.GOOD,
_1.Grade.AGAIN,
_1.Grade.GOOD,
_1.Grade.GOOD,
];
let results = [];
let card = newCard(ratings[0]);
ratings.forEach((rating, index) => {
if (index > 0) {
let daysSinceReview = card.I;
card = gradeCard(card, daysSinceReview, rating);
}
results.push({
Step: index + 1,
Rating: rating,
Difficulty: card.D,
Stability: card.S,
Interval: card.I + "d",
});
});
// v1:
// ┌───┬──────┬────────┬───────────────────┬────────────────────┬─────────────────────┐
// │ │ Step │ Rating │ Difficulty │ Stability │ Interval │
// ├───┼──────┼────────┼───────────────────┼────────────────────┼─────────────────────┤
// │ 0 │ 1 │ 3 │ 4.93 │ 2.4 │ 2.3999999999999995d │
// │ 1 │ 2 │ 3 │ 4.93 │ 8.035970512572042 │ 8.035970512572039d │
// │ 2 │ 3 │ 3 │ 4.93 │ 23.969794373339646 │ 23.96979437333964d │
// │ 3 │ 4 │ 3 │ 4.93 │ 64.75459555875548 │ 64.75459555875547d │
// │ 4 │ 5 │ 1 │ 6.632799999999999 │ 7.087040882328393 │ 7.087040882328391d │
// │ 5 │ 6 │ 3 │ 6.615771999999998 │ 17.41682704709107 │ 17.416827047091065d │
// │ 6 │ 7 │ 3 │ 6.598914279999998 │ 39.88623112320673 │ 39.88623112320672d │
// └───┴──────┴────────┴───────────────────┴────────────────────┴─────────────────────┘
// v2:
// ┌───┬──────┬────────┬───────────────────┬────────────────────┬──────────────────────┐
// │ │ Step │ Rating │ Difficulty │ Stability │ Interval │
// ├───┼──────┼────────┼───────────────────┼────────────────────┼──────────────────────┤
// │ 0 │ 1 │ 3 │ 5.282434422319005 │ 3.173 │ 3.172999999999999d │
// │ 1 │ 2 │ 3 │ 5.272967931287446 │ 11.144436229730912 │ 11.144436229730909d │
// │ 2 │ 3 │ 3 │ 5.263544986114632 │ 35.28817321288061 │ 35.2881732128806d │
// │ 3 │ 4 │ 3 │ 5.254165386489613 │ 102.03290951793836 │ 102.03290951793835d │
// │ 4 │ 5 │ 1 │ 6.777925624571879 │ 5.804827293202193 │ 5.804827293202191d │
// │ 5 │ 6 │ 3 │ 6.761579874009957 │ 15.847787525045739 │ 15.847787525045735d │
// │ 6 │ 7 │ 3 │ 6.745309313900619 │ 40.26592262565439 │ 40.26592262565438d │
// └───┴──────┴────────┴───────────────────┴────────────────────┴──────────────────────┘
console.table(results);
//# sourceMappingURL=test.js.map