diff --git a/06week/checkpoint2.js b/06week/checkpoint2.js new file mode 100644 index 000000000..e4ec10002 --- /dev/null +++ b/06week/checkpoint2.js @@ -0,0 +1,123 @@ +'use strict' + +const strNums = ["1", "4", "1", "5", "9", "2", "6", "5", "3", "5", "8", "9", "7", "9", "3", "2", "3", "8", "4", "6", "2", "6", "4", "3", "3", "8", "3", "2", "7", "9", "5", "0", "2", "8", "8", "4", "1", "9", "7", "1", "6", "9", "3", "9", "9", "3", "7", "5", "1", "0", "5", "8", "2", "0", "9", "7", "4", "9", "4", "4", "5", "9", "2", "3", "0", "7", "8", "1", "6", "4", "0", "6", "2", "8", "6", "2", "0", "8", "9", "9", "8", "6", "2", "8", "0", "3", "4", "8", "2", "5", "3", "4", "2", "1", "1", "7", "0", "6", "7", "9", "8", "2", "1", "4", "8", "0", "8", "6", "5", "1", "3", "2", "8", "2", "3", "0", "6", "6", "4", "7", "0", "9", "3", "8", "4", "4", "6", "0", "9", "5", "5", "0", "5", "8", "2", "2", "3", "1", "7", "2", "5", "3", "5", "9", "4", "0", "8", "1", "2", "8", "4", "8", "1", "1", "1", "7", "4", "5", "0", "2", "8", "4", "1", "0", "2", "7", "0", "1", "9", "3", "8", "5", "2", "1", "1", "0", "5", "5", "5", "9", "6", "4", "4", "6", "2", "2", "9", "4", "8", "9", "5", "4", "9", "3", "0", "3", "8", "1", "9", "6", "4", "4", "2", "8", "8", "1", "0", "9", "7", "5", "6", "6", "5", "9", "3", "3", "4", "4", "6", "1", "2", "8", "4", "7", "5", "6", "4", "8", "2", "3", "3", "7", "8", "6", "7", "8", "3", "1", "6", "5", "2", "7", "1", "2", "0", "1", "9", "0", "9", "1", "4", "5", "6", "4", "8", "5", "6", "6", "9", "2", "3", "4", "6", "0", "3", "4", "8", "6", "1", "0", "4", "5", "4", "3", "2", "6", "6", "4", "8", "2", "1", "3", "3", "9", "3", "6", "0", "7", "2", "6", "0", "2", "4", "9", "1", "4", "1", "2", "7", "3", "7", "2", "4", "5", "8", "7", "0", "0", "6", "6", "0", "6", "3", "1", "5", "5", "8", "8", "1", "7", "4", "8", "8", "1", "5", "2", "0", "9", "2", "0", "9", "6", "2", "8", "2", "9", "2", "5", "4", "0", "9", "1", "7", "1", "5", "3", "6", "4", "3", "6", "7", "8", "9", "2", "5", "9", "0", "3", "6", "0", "0", "1", "1", "3", "3", "0", "5", "3", "0", "5", "4", "8", "8", "2", "0", "4", "6", "6", "5", "2", "1", "3", "8", "4", "1", "4", "6", "9", "5", "1", "9", "4", "1", "5", "1", "1", "6", "0", "9", "4", "3", "3", "0", "5", "7", "2", "7", "0", "3", "6", "5", "7", "5", "9", "5", "9", "1", "9", "5", "3", "0", "9", "2", "1", "8", "6", "1", "1", "7", "3", "8", "1", "9", "3", "2", "6", "1", "1", "7", "9", "3", "1", "0", "5", "1", "1", "8", "5", "4", "8", "0", "7", "4", "4", "6", "2", "3", "7", "9", "9", "6", "2", "7", "4", "9", "5", "6", "7", "3", "5", "1", "8", "8", "5", "7", "5", "2", "7", "2", "4", "8", "9", "1", "2", "2", "7", "9", "3", "8", "1", "8", "3", "0", "1", "1", "9", "4", "9", "1", "2", "9", "8", "3", "3", "6", "7", "3", "3", "6", "2", "4", "4", "0", "6", "5", "6", "6", "4", "3", "0", "8", "6", "0", "2", "1", "3", "9", "4", "9", "4", "6", "3", "9", "5", "2", "2", "4", "7", "3", "7", "1", "9", "0", "7", "0", "2", "1", "7", "9", "8", "6", "0", "9", "4", "3", "7", "0", "2", "7", "7", "0", "5", "3", "9", "2", "1", "7", "1", "7", "6", "2", "9", "3", "1", "7", "6", "7", "5", "2", "3", "8", "4", "6", "7", "4", "8", "1", "8", "4", "6", "7", "6", "6", "9", "4", "0", "5", "1", "3", "2", "0", "0", "0", "5", "6", "8", "1", "2", "7", "1", "4", "5", "2", "6", "3", "5", "6", "0", "8", "2", "7", "7", "8", "5", "7", "7", "1", "3", "4", "2", "7", "5", "7", "7", "8", "9", "6", "0", "9", "1", "7", "3", "6", "3", "7", "1", "7", "8", "7", "2", "1", "4", "6", "8", "4", "4", "0", "9", "0", "1", "2", "2", "4", "9", "5", "3", "4", "3", "0", "1", "4", "6", "5", "4", "9", "5", "8", "5", "3", "7", "1", "0", "5", "0", "7", "9", "2", "2", "7", "9", "6", "8", "9", "2", "5", "8", "9", "2", "3", "5", "4", "2", "0", "1", "9", "9", "5", "6", "1", "1", "2", "1", "2", "9", "0", "2", "1", "9", "6", "0", "8", "6", "4", "0", "3", "4", "4", "1", "8", "1", "5", "9", "8", "1", "3", "6", "2", "9", "7", "7", "4", "7", "7", "1", "3", "0", "9", "9", "6", "0", "5", "1", "8", "7", "0", "7", "2", "1", "1", "3", "4", "9", "9", "9", "9", "9", "9", "8", "3", "7", "2", "9", "7", "8", "0", "4", "9", "9", "5", "1", "0", "5", "9", "7", "3", "1", "7", "3", "2", "8", "1", "6", "0", "9", "6", "3", "1", "8", "5", "9", "5", "0", "2", "4", "4", "5", "9", "4", "5", "5", "3", "4", "6", "9", "0", "8", "3", "0", "2", "6", "4", "2", "5", "2", "2", "3", "0", "8", "2", "5", "3", "3", "4", "4", "6", "8", "5", "0", "3", "5", "2", "6", "1", "9", "3", "1", "1", "8", "8", "1", "7", "1", "0", "1", "0", "0", "0", "3", "1", "3", "7", "8", "3", "8", "7", "5", "2", "8", "8", "6", "5", "8", "7", "5", "3", "3", "2", "0", "8", "3", "8", "1", "4", "2", "0", "6", "1", "7", "1", "7", "7", "6", "6", "9", "1", "4", "7", "3", "0", "3", "5", "9", "8", "2", "5", "3", "4", "9", "0", "4", "2", "8", "7", "5", "5", "4", "6", "8", "7", "3", "1", "1", "5", "9", "5", "6", "2", "8", "6", "3", "8", "8", "2", "3", "5", "3", "7", "8", "7", "5", "9", "3", "7", "5", "1", "9", "5", "7", "7", "8", "1", "8", "5", "7", "7", "8", "0", "5", "3", "2", "1", "7", "1", "2", "2", "6", "8", "0", "6", "6", "1", "3", "0", "0", "1", "9", "2", "7", "8", "7", "6", "6", "1", "1", "1", "9", "5", "9", "0", "9", "2", "1", "6", "4", "2", "0", "1", "9", "8", "9"]; + +/* Given 1000 digits of PI as strings, return an array of the digits as numbers. map() creates new array, + parseInt() converts string numbers into number integers +*/ +const nums = strNums.map((nums) => { + return parseInt(nums); +}); +console.log(nums); + + +/* Find the sum of the even values. reduce() checks for even numbers.If even number it adds +number to accumulator(total) variable. Initial value for total is set at 0. +*/ +const sumEvens = nums.reduce((total, item) => { + return item % 2 === 0 ? total + item : total + 0; +}, 0); + +console.log(sumEvens); + + + +/* Find the index of the first "Austin" value (the value plus its index equals 512). +findIndex() returns the index when condition is true. +*/ +const atxIdx = nums.findIndex((value, index) => (value + index) === 512); + +console.log(`index: ${atxIdx}, value: ${nums[atxIdx]}`); + + +const weather = [{ + id: 5743823523151872, + weather_state_name: "Light Cloud", + weather_state_abbr: "lc", + wind_direction_compass: "NNE", + created: "2018-07-11T20:53:03.251710Z", + applicable_date: "2018-07-11", + min_temp: 14.43, + max_temp: 23.36, + the_temp: 22.785, + wind_speed: 5.682503989556987, + wind_direction: 21.6264939172659, + air_pressure: 1024.45, + humidity: 58, + visibility: 8.683041040324504, + predictability: 70 +}, +{ + id: 6188149969518592, + weather_state_name: "Heavy Cloud", + weather_state_abbr: "hc", + wind_direction_compass: "NE", + created: "2018-07-11T20:53:03.268190Z", + applicable_date: "2018-07-12", + min_temp: 14.81, + max_temp: 25.52, + the_temp: 24.61, + wind_speed: 3.2461141472739206, + wind_direction: 42.72552812997726, + air_pressure: 1024.605, + humidity: 54, + visibility: 10.633835898353615, + predictability: 71 +}, +{ + id: 5742049676492800, + weather_state_name: "Showers", + weather_state_abbr: "s", + wind_direction_compass: "E", + created: "2018-07-11T20:53:03.947390Z", + applicable_date: "2018-07-13", + min_temp: 15.5525, + max_temp: 25.3475, + the_temp: 24.175, + wind_speed: 3.6572546846814604, + wind_direction: 90.32910675612557, + air_pressure: 1025.385, + humidity: 57, + visibility: 10.181166984808717, + predictability: 73 +}, +{ + id: 6696130918219776, + weather_state_name: "Heavy Cloud", + weather_state_abbr: "hc", + wind_direction_compass: "SSW", + created: "2018-07-11T20:53:04.068570Z", + applicable_date: "2018-07-14", + min_temp: 15.915, + max_temp: 27.0925, + the_temp: 26.585, + wind_speed: 3.649847972759087, + wind_direction: 200.04283406736377, + air_pressure: 1024.4450000000002, + humidity: 52, + visibility: 11.14056410562316, + predictability: 71 +}, +]; + + +/*using a higher order function, create an array of the unique 'weather_state_name' values of + the weather array. map() function finds the weather_state_names, new Set assigns the + weather_state_names using the spread operator to weatherStates. + */ +const weatherStates = [...new Set(weather.map(names => names.weather_state_name))]; + +console.log(weatherStates); + + + +/*find the id of the object in weather that has a min_temp of 15.915. filter() returns +new array with elements that pass test. map() returns only the id property from that object. +*/ +const idealTemp = weather.filter(function(item, index, arr) { + return (item.min_temp >= 15.915) +}).map(function(item) { + return item.id; +}); + +console.log(idealTemp);