Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions 06week/Sorting.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
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
const stringsToNumbs = (numbers) => {
return numbers.map(Number);
}

console.log("RETURN ARRAY AS NUMBERS: ", stringsToNumbs(strNums));

// With the same numbers, find the sum of the even values
const b = [];

for (var i = 0; i < strNums.length; ++i) {
if ((strNums[i] % 2) === 0) {
b.push(strNums[i]);
}
}

const sumEvens = b.push(strNums[i]);


console.log("SUM OF EVEN VALUES: ", sumEvens);

// Find the index of the first value when added to it's index = 512 (#ATX!!)
//const atxIdx;

//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. Your function should return the following array ['Light Cloud', 'Heavy Cloud', 'Showers']
const weatherStates = weather.map(function(weatherstate) {
return weatherstate.weather_state_name;
})

console.log("WEATHER STATE NAME ARRAY: ", weatherStates)

//find the id of the object in weather that has a min_temp of 15.915

const idealTemp = weather.map(function(idealtemp) {
if(idealtemp.min_temp === 15.915) {
return idealtemp.id;
}
})

console.log("OBJECT ID MIN_TEMP OF 15.915: ",idealTemp)
107 changes: 42 additions & 65 deletions 06week/higherOrder.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,49 @@

const assert = require('assert');

function forEach(arr, callback) {
// Your code here
}

function map(arr, callback) {
// Your code here
}

let newArray = [];

function filter(arr, callback) {
// Your code here
}
for(let i = 0; i < arr.length; i++){
let elements = callback(arr[i]);
newArray.push(elements);
}

return newArray;

function some(arr, callback) {
// Your code here
}

function every(arr, callback) {
// Your code here
function reduce(array, callback, accumulator) {
accumulator = accumulator || 0;

for(let index = 0; index < array.length; index++) {
if(typeof array[index] == 'number') {
accumulator = accumulator + array[index];
} else if(typeof array[index] == 'object') {
for(let i in array[index]) {
accumulator = accumulator + array[index];
}
}
}
return accumulator;
}

if (typeof describe === 'function') {
function filter(arr, callback) {

describe('#forEach()', () => {
it('should call the callback the array.length number of times', () => {
let count = 0;
forEach([1, 2, 3], () => {
count++;
});
assert.equal(count, 3);
});
});
let newArray = [];

for(let i = 0; i < arr.length; i++) {
if(callback(arr[i])) {
newArray.push(arr[i]);
}
}
return newArray;
}


if (typeof describe === 'function') {
describe('#map()', () => {
const arr = [1, 2, 3];
const mapped = map(arr, (num) => {
Expand All @@ -47,57 +58,23 @@ if (typeof describe === 'function') {
})
});

describe('#filter()', () => {
it('should return an array of items that pass the predicate test', () => {
const filtered = filter([1, 2, 3], (num) => {
return num % 2 === 0;
});
assert.deepEqual(filtered, [2]);
});
});

describe('#some()', () => {
let count = 0;
const somed = some([1, 2, 3, 4], (num) => {
count++;
return num % 2 === 0;
});
it('should return true if at least one item passes the predicate test', () => {
assert.equal(somed, true);
});
it('should stop at the first item that passes the predicate test', () => {
assert.equal(count, 2);
});
it('should return false if no items pass the predicate test', () => {
const somed = some([1, 3, 5], (num) => {
return num % 2 === 0;
describe('#reduce()', () => {
it('should return array elements added together', () => {
const reduced = reduce([1, 2, 3], (acc, num) => {
return acc + num;
});
assert.equal(somed, false);
assert.deepEqual(reduced, 6);
});
});

describe('#every()', () => {
it('should return true if at all passes the predicate test', () => {
const everied = every([2, 4, 6], (num) => {
describe('#filter()', () => {
it('should return an array of items that pass the predicate test', () => {
const filtered = filter([1, 2, 3], (num) => {
return num % 2 === 0;
});
assert.equal(everied, true);
});
let count = 0;
const everied = every([2, 3, 4, 5], (num) => {
count++;
return num % 2 === 0;
});
it('should return false if any item fails the predicate test', () => {
assert.equal(everied, false);
});
it('should stop at the first item that fails the predicate test', () => {
assert.equal(count, 2);
assert.deepEqual(filtered, [2]);
});
});

} else {

console.log('Only run the tests on this one!')

}