merge: Added explicit cache feature & optional parameter (#941)

This commit is contained in:
Fahim Faisaal
2022-03-22 15:06:21 +06:00
committed by GitHub
parent ad68c63947
commit d246958a4d
2 changed files with 16 additions and 4 deletions

View File

@ -10,12 +10,10 @@
* which lets us use it as [Higher-Order Function](https://eloquentjavascript.net/05_higher_order.html)
* and return another function
* @param {Function} func Original function
* @param {Map} cache - it's receive any cache DS which have get, set & has method
* @returns {Function} Memoized function
*/
const memoize = (func) => {
// Initialization of a slot to store the function result by arguments as a key in Hash Map
const cache = new Map()
const memoize = (func, cache = new Map()) => {
const jsonReplacer = (_, value) => {
if (value instanceof Set) { // if the value is Set it's converted to Array cause JSON.stringify can't convert Set
return [...value]