peterschussheim
9/8/2016 - 9:05 PM

evenLast

evenLast

"use strict";

// evenLast :: [Number] -> Number
function evenLast(data) {
  if (data.length < 1) {
    return 0;
  } else {
      var isEven = function isEven(n) {
        if (n === 0) {
          return true;
        } else if (n === 1) {
            return false;
        } else {
            return isEven(n - 2);
      }
    };

    var filtered = data.filter(isEven);
    var sum = filtered.reduce(function(prev, curr) {
      return prev + curr;
    }, 0);
  }
  
  return sum * data[data.length - 1];
}

var assert = require('assert');


var test1 = evenLast([0, 1, 2, 3, 4, 5]);
var test2 = evenLast([1, 3, 5]);
var test3 = evenLast([6]);
var test4 = evenLast([]);


evenLast

This Gist was automatically created by Carbide, a free online programming environment.

You can view a live, interactive version of this Gist here.