.map() Returns a new array of elements. Calls back each element, and index, and then returns each. Typically used for manipulating or reshaping data. Does not alter the array it was called on.

Example:

const mappedCityStates = data.map((state) => {
	return {"city": state.city, "state": state.state};
});

.filter() Returns a new array of elements. Every time the function loops it will call back each element, and index and then returns each. The callback that it takes runs a truth test. If true, returns the elements, where false elements are ignored entirely. Does not alter the array it was called on.

Example:

const filterLargeStates = data.filter((state) => {
	return state.population >= 65000;
});

.reduce() Returns a new array. Takes a callback which is a reducer function. Reducer function takes a previous value and a next value known as an accumulator and currentValue respectively. Used for manipulating or reshaping data into a single value.

Example:

const reduceStatePopulations = data.reduce((total, state) => {
	return total += state.population;
}, 0); 

.forEach() loops through an array of items, and displays a given output.

Example: