Created
August 3, 2015 23:49
-
-
Save clayton-perszyk/dec731722463ee129c98 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // PUT YOUR CODE HERE!!! | |
| var _ = { | |
| average: function(array) { | |
| if (!Array.isArray(array)){ return "can only find average of numbers." } | |
| var length = array.length; | |
| var sum = 0; | |
| for (var i = 0; i < length; i += 1) { | |
| sum += array[i]; | |
| } | |
| return sum / length; | |
| }, | |
| contains: function(array, number) { | |
| var length = array.length; | |
| for (var i = 0; i < length; i += 1) { | |
| if (array[i] === number) { | |
| return true | |
| } | |
| } | |
| return false; | |
| }, | |
| first: function(array) { | |
| return array[0]; | |
| }, | |
| last: function(array) { | |
| return array[array.length - 1] | |
| }, | |
| max: function(array) { | |
| var length = array.length; | |
| var maximum = 0; | |
| for (var i = 0; i < length; i += 1) { | |
| if (array[i] > maximum) { | |
| maximum = array[i]; | |
| } | |
| } | |
| return maximum; | |
| }, | |
| min: function(array) { | |
| var length = array.length; | |
| var min; | |
| for (var i = 0; i < length; i += 1) { | |
| if (min === undefined || array[i] < min) { | |
| min = array[i] | |
| } | |
| } | |
| return min; | |
| }, | |
| shuffle: function(array) { | |
| var newArr = []; | |
| var index = array.length; | |
| var tempVar; | |
| var randomIndex; | |
| for (var i = length; i > 0; i -= 1) { | |
| randomIndex = Math.floor(Math.random() * (i + 1)); | |
| tempVar = array[randomIndex]; | |
| array[randomIndex] = array[i]; | |
| array[i] = tempVar; | |
| } | |
| return array; | |
| }, | |
| sample: function(array, elements) { | |
| var randomElements = []; | |
| var random; | |
| var indexToRemove; | |
| if (!elements) { return array[Math.floor(Math.random() * (length - 1))] } | |
| for (var i = 1; i <= elements; i += 1) { | |
| random = Math.floor(Math.random() * (array.length - 1)); | |
| randomElements.push(array[random]) ; | |
| indexToRemove = array.indexOf(array[random]); | |
| array.splice(indexToRemove, 1); | |
| } | |
| return randomElements; | |
| }, | |
| difference: function(array1, array2) { | |
| var diffArray = []; | |
| for (var i = 0; i < array2.length; i += 1) { | |
| for (var j = 0; j < array1.length; j += 1) { | |
| if (!(array1[j] === array2[i]) && diffArray.indexOf(array1[i]) === -1) { | |
| diffArray.push(array1[i]); | |
| } | |
| } | |
| } | |
| return diffArray; | |
| }, | |
| indexOf: function(array, value) { | |
| for (var i = 0; i < array.length; i += 1) { | |
| if (array[i] === value) { | |
| return i; | |
| } | |
| } | |
| return -1; | |
| }, | |
| pluck: function(array, propName) { | |
| var propValues = []; | |
| for (var i = 0; i < array.length; i += 1) { | |
| propValues.push(array[i][propName]); | |
| } | |
| return propValues; | |
| }, | |
| each: function(array, action) { | |
| for (var i = 0; i < array.length; i += 1) { | |
| action(array[i]); | |
| } | |
| }, | |
| compact: function(array) { | |
| var compacted = []; | |
| for (var i = 0; i < array.length; i += 1) { | |
| if (array[i] !== undefined) { | |
| compacted.push(array[i]); | |
| } | |
| } | |
| return compacted; | |
| }, | |
| map: function(array, action) { | |
| var mapped = []; | |
| for (var i = 0; i < array.length; i += 1) { | |
| mapped.push(action(array[i])); | |
| } | |
| return mapped; | |
| }, | |
| filter: function(array, action) { | |
| var passedArray = []; | |
| for (var i = 0; i < array.length; i += 1) { | |
| if (action(array[i])) { | |
| passedArray.push(array[i]); | |
| } | |
| } | |
| return passedArray; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment