-
Using the array:
["cat", "fox", "dog", "monkey"]
, what is the index of:- "dog"?
- "monkey"?
- "cat"?
-
Fix the syntax/style in the following arrays:
[ 1, 3 4 7,9, ]
"the""quick""brown","fox" "jumped","over" the lazy, "dog", ]
[true false,true
-
Create arrays in the global scope of your
main.js
file consisting of strings that represent:- Your favorite TV shows/movies
- Names of people you know/care about
- Favorite sports/activities
-
Using the arrays that you created in the last exercise, use the console to access:
- First elements,
- Last elements,
- Other elements!
-
Write a function
first
that takes an array as an argument and returns the first element in that array. -
Write a function
last
that takes an array as an argument and returns the last element in the array. Hint: What is the relationship between the index of the last element in the array and the length of the array?
-
Using the console,
push
andunshift
, make this array contain the numbers from zero through seven:var arr = [2, 3, 4]; // your code here arr; // => [0, 1, 2, 3, 4, 5, 6, 7]
-
What is returned by
push
? Before throwing this into the console, form a hypothesis about what you think the return value will be:var arr = [5, 7, 9]; arr.push(6); // => ???
Were you correct? What is the returned by
push
? Doesunshift
work in the same way? -
We can use the assignment operator (
=
) to replace elements in arrays with other ones like so:var animals = ['dog', 'elephant', 'zebra'] // let's replace 'dog' with 'hippo' animals[0] = 'hippo'; animals; // => ['hippo', 'elephant', 'zebra']
Using the same principle, perform the following:
// 1. Change all odd numbers to be those numbers multiplied by two: var numbers = [4, 9, 7, 2, 1, 8]; // TODO: your code here numbers; // => [4, 18, 14, 2, 2, 8] // 2. Fix the typos by replacing each element with a correctly spelled version var places = ['snfranisco', 'oacklannd', 'santacrus'] // TODO: your code here places; // => ['san francisco', 'oakland', 'santa cruz']
-
Write a function called
nth
that accepts an array and an index as parameters, and returns the element at that index.function nth(array, index) { // TODO: your code here } var animals = ['dog', 'cat', 'gerbil']; nth(animals, 2); // => 'gerbil' nth(animals, 1) === animals[1]; // => true
-
Write a function
rest
that returns all the elements in the array except for the first one. HINT: Read about theslice
method on MDN and/or experiment withslice
at the console like so:var numbers = [3, 2, 7, 5]; numbers.slice(0); numbers.slice(1); numbers.slice(2); numbers.slice(0, 2);
-
Write a function
butlast
that returns all of the elements in the array except for the last one (you may want to useslice
for this one as well). -
Complete the function
cons
that accepts an element and an array, and returns an array with the element added to the front of the array:function cons(x, array) { // your code here }
-
Complete the function
conj
that accepts an array and an element, and returns an array with the element added to the end of the array:function conj(array, x) { // your code here }
-
What benefit(s) might there be to using functions like
cons
orconj
overunshift
orpush
? -
Try the following in a console:
var arr = []; arr[7] = "Hello." arr; // => ???
What is the value of
arr
after assigning an element to its seventh index? Explain the result in plain English.
-
Without running the below function, use a whiteboard to figure out what it should return by repeatedly expanding function invocations:
function mystery(array) { if (array.length === 0) { return []; } return conj(mystery(rest(array)), first(array)); }
-
Using
first
,rest
,conj
and/orcons
, write functions that accomplish the following:sum
all the elements of an array- Given an array, returns a new array with each element squared
- Given an array of numbers, returns a new array of just the even numbers
HINT: After figuring out how the
mystery
function works above, use it as a reference for how to write this type of function.