Skip to content

Instantly share code, notes, and snippets.

@lwebber
Forked from anonymous/Array Copy II.js
Created August 25, 2017 21:52
Show Gist options
  • Save lwebber/dd45dfb1b0182bcacdb70b70cceb3794 to your computer and use it in GitHub Desktop.
Save lwebber/dd45dfb1b0182bcacdb70b70cceb3794 to your computer and use it in GitHub Desktop.
Array Copy II created by wwebby1 - https://repl.it/G9G7/30
function minusLastItem(array) {
// your code goes here
var minusLast = array.slice(0,array.length-1);
return minusLast;
}
function copyFirstHalf(array) {
// your code goes here
var firstHalf = array.slice(0,array.length/2);
return firstHalf;
}
/* From here down, you are not expected to
understand.... for now :)
Nothing to see here!
*/
// tests
function testFunctionWorks(fn, input, expected) {
var result = fn(input);
if (
result && result.length === expected.length &&
result.every(function(item) {
return expected.indexOf(item) > -1;
})) {
console.log('SUCCESS: `' + fn.name + '` works!');
return true;
} else {
console.error('FAILURE: `' + fn.name + '` is not working');
return false;
}
}
function runTests() {
var list = ["red bull", "monster", "amp", "rockstar", "full throttle", "kickstart"];
var result1 = ["red bull", "monster", "amp", "rockstar", "full throttle"];
var result2 = ["red bull", "monster", "amp"];
var testResults = [
testFunctionWorks(minusLastItem, list, result1),
testFunctionWorks(copyFirstHalf, list, result2),
];
var numPassing = testResults.filter(function(result){ return result; }).length;
console.log(numPassing + ' out of ' + testResults.length + ' tests passing.');
}
runTests();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment