Skip to content

Instantly share code, notes, and snippets.

@peterschussheim
Last active September 8, 2016 22:56
Show Gist options
  • Save peterschussheim/1d8d3fea4fcfac7f2af1bdc3b556b836 to your computer and use it in GitHub Desktop.
Save peterschussheim/1d8d3fea4fcfac7f2af1bdc3b556b836 to your computer and use it in GitHub Desktop.
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([]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment