Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HW4 submission Sagari Datta #23

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
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
33 changes: 25 additions & 8 deletions lab/lab1/part1.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Is printMenu a function? Answer this question with underscore. Should evaluate
to true.
===================== */

var query1;
var query1 = _.isFunction(printMenu);

console.log('printMenu is a function:', query1);

Expand All @@ -72,7 +72,7 @@ Is bakedGoods an array? Answer this question with underscore. Should evaluate
to true.
===================== */

var query2;
var query2 = _.isArray(bakedGoods);

console.log('bakedGoods is an array:', query2);

Expand All @@ -81,39 +81,40 @@ Is the first element in bakedGoods an object? Answer this question with
underscore. Should evaluate to true.
===================== */

var query3;
var query3 = _.isObject(bakedGoods[0]);

console.log('The first element in bakedGoods is an object:', query3);

/* =====================
Use _.where to return all cakes. Or bread. Whichever is your favorite.
===================== */

var query4;
var query4 = _.filter(bakedGoods, function(a) {return a.type == "Cake"});

console.log('All bread. Or cakes:', query4);

/* =====================
Use _.filter to return all baked goods that cost more than $4.
===================== */

var query5;
var query5 = _.filter(bakedGoods, function(a) {return a.price > 4});;

console.log('More than $4:', query5);

/* =====================
Use _.sortBy to order the list by inventory (from lowest to highest).
===================== */

var query6;
var query6 = _.sortBy(bakedGoods, 'inventory');
;

console.log('Sorted by inventory (lowest to highest):', query6);

/* =====================
Use _.groupBy to organize the baked goods by type.
===================== */

var query7;
var query7 = _.groupBy(bakedGoods, 'type');

console.log('Grouped by type:', query7);

Expand All @@ -137,7 +138,23 @@ Rye ... $5.09
Whole Wheat ... $4.49
===================== */

// printMenu(query7);
//printMenu(query7);

//input for the function is the menu object
var menuFunction = function (menu) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work - and good comments.

//first for loop gets each key in menu i.e., cake and bread
for (i in menu){
//print the first item in the menu object
console.log(i);
//second for loop loops through the length of the array objects under each key in the menu
for (var k = 0; k < menu[i].length; k = k+1){
//print name of each item and the price in the array for cake and bread
console.log(menu[i][k].name + " " + menu[i][k].price);
}
}
};
//call menu function
menuFunction(query7)

/* =====================
Stretch Goal:
Expand Down
31 changes: 28 additions & 3 deletions lab/lab2/js/part1-ajax-calls.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,12 @@
This recipe, can be used by underscore's _.filter. It will return only words with
>=5 characters.
===================== */
var isLengthOfFiveOrMore = function(str) {};
// var isLengthOfFiveOrMore = function(str) {
// return _.filter(str, function(a){return a.length > 5 })
// };

var isLengthOfFiveOrMore = (a) => {
return a.length > 5 };

console.log("isLengthOfFiveOrMore success:",
_.isEqual(_.filter(['this', 'is','a', 'test', 'testing'], isLengthOfFiveOrMore), ['testing']));
Expand All @@ -30,7 +35,9 @@ console.log("isLengthOfFiveOrMore success:",
function you write along with underscore's _.each to log the double of every
number in the provided array.
===================== */
var logDouble = function(num) {};
var logDouble = function(num) {
return num * 2
};
var theArray = [1, 5, 20, 100];


Expand Down Expand Up @@ -94,7 +101,6 @@ var phillySolarInstallationDataUrl = "https://raw.githubusercontent.com/CPLN692-
var phillyCrimeDataUrl = "https://raw.githubusercontent.com/CPLN692-MUSA611/datasets/master/json/philadelphia-crime-snippet.json";
var phillyBikeCrashesDataUrl = "https://raw.githubusercontent.com/CPLN692-MUSA611/datasets/master/json/philadelphia-bike-crashes-snippet.json";


/* =====================
Data you grab through ajax is just text. You'll need to parse it as javascript
objects to really work with it. Use the function `JSON.parse` on the string you
Expand All @@ -104,12 +110,31 @@ var phillyBikeCrashesDataUrl = "https://raw.githubusercontent.com/CPLN692-MUSA61
that this step is completed before moving on!
===================== */

/*
var storedValue;
$.ajax(phillyBikeCrashesDataUrl).done(function(result){
storedValue = JSON.parse(result);
console.log(storedValue);
});*/


/* =====================
Now that you've properly parsed your data, use _.each to plot the
dataset you've pulled down.
===================== */

//created a function that gets url data, parses through it and adds markers to the map
var getCrimeData = function() {
$.ajax(phillyCrimeDataUrl).done(function(res) {
//store data in JSON format
crimeData = JSON.parse(res);
console.log(crimeData);
_.forEach(crimeData, function(point){
L.marker([point.Lat, point.Lng]).addTo(map);});
});
};
//call the function
getCrimeData();

/* =====================
Leaflet setup - feel free to ignore this
Expand Down
49 changes: 42 additions & 7 deletions lab/lab2/js/part2-app-state.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,29 @@
var one = justOne();
===================== */

// We set this to HTTP to prevent 'CORS' issues
var downloadData = $.ajax("http://");
var parseData = function() {};
var makeMarkers = function() {};
var plotMarkers = function() {};
//download data from URL
var downloadData = $.ajax("https://raw.githubusercontent.com/CPLN692-MUSA611/datasets/master/json/philadelphia-solar-installations.json");

//change data into JSON format
var parseData = function(data){
return JSON.parse(data);
};

//add markers - using map function since
var makeMarkers = function(data) {
return _.map(data, function(point){
return L.marker([point.LAT, point.LONG_]);
});
};

var plotMarkers = function(data) {
_.forEach(data, function(point) {
point.addTo(map);
});
};
/*

// We set this to HTTP to prevent 'CORS' issues

/* =====================
Define the function removeData so that it clears the markers you've written
Expand All @@ -53,7 +70,11 @@ var plotMarkers = function() {};
user's input.
===================== */

var removeMarkers = function() {};
var removeMarkers = function(data) {
return _.map(data, function(point) {
return map.removeLayer(point);
});
};

/* =====================
Optional, stretch goal
Expand Down Expand Up @@ -87,5 +108,19 @@ downloadData.done(function(data) {
var parsed = parseData(data);
var markers = makeMarkers(parsed);
plotMarkers(markers);
removeMarkers(markers);
//removeMarkers(markers);
});

/*
Test code for console
var solarPhilly;
var downloadData = $.ajax("https://raw.githubusercontent.com/CPLN692-MUSA611/datasets/master/json/philadelphia-solar-installations.json");
var parseData = function() {
var download = downloadData;
download.done(function(res) {
console.log(res);
//store data in JSON format
solarPhilly = JSON.parse(res);
console.log(solarPhilly);
})
};*/
32 changes: 30 additions & 2 deletions lab/lab2/js/part3-application.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,29 +27,57 @@
/* =====================
Define a resetMap function to remove markers from the map and clear the array of markers
===================== */
var resetMap = function() {

var resetMap = function(data) {
/* =====================
Fill out this function definition
===================== */

//parse through the data (list) to remove the marker
//using map function (instead of _.forEach) since I wanted to have a return value
return _.map(data, function(point) {
return map.removeLayer(point);
});

};

/* =====================
Define a getAndParseData function to grab our dataset through a jQuery.ajax call ($.ajax). It
will be called as soon as the application starts. Be sure to parse your data once you've pulled
it down!
===================== */

var solarPhilly;
var getAndParseData = function() {
/* =====================
Fill out this function definition
===================== */

//get url data
var downloadData = $.ajax("https://raw.githubusercontent.com/CPLN692-MUSA611/datasets/master/json/philadelphia-solar-installations.json");
//create function for parsing data
var parseData = function() {
//store data in a variable
var download = downloadData;
download.done(function(res) {
//store JSON (parsed data) in a new variable
var solarPhilly = JSON.parse(res);
//console log the parsed data
console.log(solarPhilly);
})

};

/* =====================
Call our plotData function. It should plot all the markers that meet our criteria (whatever that
criteria happens to be — that's entirely up to you)
===================== */
var plotData = function() {
var plotData = function(data) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

I get an error. No points. Are you able to visualize points?

/* =====================
Fill out this function definition
===================== */

_.forEach(data, function(point) {
L.marker([point.LAT, point.LONG_]).addTo(map);

};