maksim-korzhov
12/13/2017 - 8:02 PM

memoized_results

// Функция сапоминанием своих предыдущих результатов
Function.prototype.memoized = function(key) {
  // Инициализация кеша
  this._cache = this._cache || {};
  
  // Возвращаем значение из кеша или новое вычисленное значение
  return this._cache[key] !== undefined ?
     this._cache[key] :
     this._cache[key] = this.apply(this, arguments);
};

// Проверка на простое число
function isPrime(num) {
  var prime = num != 1;
  
  for( var i = 2; i < num; i++ ) {
    if( num % i == 0 ) {
      prime = false;
      break;
    }
  }
  
  return prime;
}

console.log(isPrime.memoized(4));
console.log(isPrime.memoized(7));
console.log(isPrime.memoized(56));
console.log(isPrime.memoized(37));
console.log(isPrime.memoized(5));
console.log(isPrime.memoized(173466822778317));
console.log(isPrime._cache);