Slide 1

Slide 1 text

Data Types Objects and Arrays Tuesday, September 8, 2009

Slide 2

Slide 2 text

objects collection of properties and methods Tuesday, September 8, 2009

Slide 3

Slide 3 text

creating a new object new Object() Tuesday, September 8, 2009

Slide 4

Slide 4 text

creating a new object (shortcut) {} Tuesday, September 8, 2009

Slide 5

Slide 5 text

different ways to do the same thing var student = new Object(); student.name = 'John Doe'; student.age = 18; var student = {name:'John Doe', age:18}; Tuesday, September 8, 2009

Slide 6

Slide 6 text

keys can be strings var student = {name:'John Doe', age:18}; var student = {'name':'John Doe', 'age':18}; Tuesday, September 8, 2009

Slide 7

Slide 7 text

liberal formatting var student = {name:'John Doe', age:18}; var student = { name:'John Doe', age:18 }; var student = { name : 'John Doe', age : 18 }; Tuesday, September 8, 2009

Slide 8

Slide 8 text

writing properties var student = {}; student.name = 'John Doe'; Tuesday, September 8, 2009

Slide 9

Slide 9 text

write as many as you want var student = {}; student.name = 'John Doe'; student.age = 18; student.gpa = 3.7; Tuesday, September 8, 2009

Slide 10

Slide 10 text

writing properties (shortcut) var student = {name:'John Doe'}; Tuesday, September 8, 2009

Slide 11

Slide 11 text

writing multiple properties var student = {name:'John Doe', age:18, gpa:3.7}; Tuesday, September 8, 2009

Slide 12

Slide 12 text

reading properties var student = {name:'John Doe', age:18}; student.name // "John Doe" student.age // 18 Tuesday, September 8, 2009

Slide 13

Slide 13 text

reading properties (alternative syntax) var student = {name:'John Doe', age:18}; student['name'] // "John Doe" student['age'] // 18 Tuesday, September 8, 2009

Slide 14

Slide 14 text

reading properties that are not set var student = {name:'John Doe', age:18}; student.foobar // undefined Tuesday, September 8, 2009

Slide 15

Slide 15 text

different ways to do the same thing var student = {name:'John Doe', age:18}; student.name // "John Doe" student['name'] // "John Doe" student.age // 18 student['age'] // 18 Tuesday, September 8, 2009

Slide 16

Slide 16 text

methods we’ll cover them later Tuesday, September 8, 2009

Slide 17

Slide 17 text

arrays ordered collection of values Tuesday, September 8, 2009

Slide 18

Slide 18 text

creating an array new Array(); Tuesday, September 8, 2009

Slide 19

Slide 19 text

new Array with no arguments var things = new Array(); things.length; // 0 creates empty array Tuesday, September 8, 2009

Slide 20

Slide 20 text

new Array with one argument var things = new Array(5); things.length; // 5 creates array with number of undefined elements shouldn’t ever need to do this, but be aware Tuesday, September 8, 2009

Slide 21

Slide 21 text

new Array with multiple arguments creates array with each argument as element in array var things = new Array(1,2,3); things.length; // 3 Tuesday, September 8, 2009

Slide 22

Slide 22 text

summary Tuesday, September 8, 2009

Slide 23

Slide 23 text

creating an array (shortcut) [] Tuesday, September 8, 2009

Slide 24

Slide 24 text

much more predictable Tuesday, September 8, 2009

Slide 25

Slide 25 text

array methods Tuesday, September 8, 2009

Slide 26

Slide 26 text

remember how strings are zero indexed? var car = "car"; car[0] // c car[1] // a car[2] // r Tuesday, September 8, 2009

Slide 27

Slide 27 text

arrays are too var car = ['c', 'a', 'r']; car[0] // c car[1] // a car[2] // r Tuesday, September 8, 2009

Slide 28

Slide 28 text

array of numbers var things = [1,2,3,4,5]; things[0] // 1 things[1] // 2 things[2] // 3 things[3] // 4 things[4] // 5 things[5] // undefined Tuesday, September 8, 2009

Slide 29

Slide 29 text

remember how strings know their length? var football = "football"; football.length // 8 Tuesday, September 8, 2009

Slide 30

Slide 30 text

arrays do too var things = [1,2,3,4,5]; things.length // 5 http://www.w3schools.com/jsref/jsref_length_array.asp Tuesday, September 8, 2009

Slide 31

Slide 31 text

remember how strings can get the indexOf stuff? var football = "football"; football.indexOf('f') // 0 football.indexOf('o') // 1 football.indexOf('foot') // 0 football.indexOf('z') // -1 Tuesday, September 8, 2009

Slide 32

Slide 32 text

arrays can too var car = ['c','a','r']; car.indexOf('c'); // 0 car.indexOf('a'); // 1 car.indexOf('r'); // 2 car.indexOf('b'); // -1 Tuesday, September 8, 2009

Slide 33

Slide 33 text

more indexOf examples var strings = ['aa', 'b', 'ccD']; strings.indexOf('aa') // 0 strings.indexOf('ccD') // 2 strings.indexOf('ccd') // -1 Tuesday, September 8, 2009

Slide 34

Slide 34 text

arrays can be multi-dimensional var multi = ['a', 'b', ['z', 'y']]; multi[0] // 'a' multi[1] // 'b' multi[2] // ['z', 'y'] multi[2][0] // 'z' multi[2][1] // 'y' multi[2].length // 2 Tuesday, September 8, 2009

Slide 35

Slide 35 text

concat returns joined arrays but does not alter them http://www.w3schools.com/jsref/jsref_concat_array.asp Tuesday, September 8, 2009

Slide 36

Slide 36 text

concat of a and b var a = [1,2]; var b = [3,4]; var c = a.concat(b); // a is still [1,2] // b is still [3,4] // c is now [1,2,3,4] Tuesday, September 8, 2009

Slide 37

Slide 37 text

concat of b and a var a = [1,2]; var b = [3,4]; var c = b.concat(a); // a is still [1,2] // b is still [3,4] // c is now [3,4,1,2] Tuesday, September 8, 2009

Slide 38

Slide 38 text

concat with multi-dimensional var multi = ['a', 'b', ['z', 'y']]; multi.concat([1, 2]) // ['a', 'b', ['z','y'], '1', '2'] Tuesday, September 8, 2009

Slide 39

Slide 39 text

join joins the elements of an array into a string separated by a delimiter http://www.w3schools.com/jsref/jsref_join.asp Tuesday, September 8, 2009

Slide 40

Slide 40 text

join var car_letters = ['c', 'a', 'r']; car_letters.join(''); // "car" Tuesday, September 8, 2009

Slide 41

Slide 41 text

join with delimiter var car_letters = ['c', 'a', 'r']; car_letters.join(','); // "c,a,r" Tuesday, September 8, 2009

Slide 42

Slide 42 text

delimiter can be any string var car_letters = ['c', 'a', 'r']; car_letters.join('WIN'); // "cWINaWINr" Tuesday, September 8, 2009

Slide 43

Slide 43 text

date example var date = [9, 8, 2009] date.join('/'); // "9/8/2009" Tuesday, September 8, 2009

Slide 44

Slide 44 text

string has the opposite of join called split var date = "9/8/2009" date.split('/') // [‘9’,‘8’,‘2009’] Tuesday, September 8, 2009

Slide 45

Slide 45 text

split/join allow for switching back and forth var date = "9/8/2009"; var date_array = date.split('/') // [‘9’,‘8’,‘2009’] var date_string = date_array.join('/'); // “9/8/2009” Tuesday, September 8, 2009

Slide 46

Slide 46 text

reverse reverses the order of an array http://www.w3schools.com/jsref/jsref_reverse.asp Tuesday, September 8, 2009

Slide 47

Slide 47 text

reverse var car = ['r', 'a', 'c']; car.reverse(); // ['c', 'a', 'r'] Tuesday, September 8, 2009

Slide 48

Slide 48 text

sort sorts the elements of an array http://www.w3schools.com/jsref/jsref_sort.asp Tuesday, September 8, 2009

Slide 49

Slide 49 text

sorting numbers var numbers = [5,3,99,77,2]; numbers.sort(); // [2,3,5,77,99] Tuesday, September 8, 2009

Slide 50

Slide 50 text

sorting strings var names = ['John', 'Steph', 'Steve', 'Carrie']; names.sort(); // ['Carrie','John','Steph','Steve'] Tuesday, September 8, 2009

Slide 51

Slide 51 text

upper case before lower case var letters = ['a', 'B', 'c', 'D']; letters.sort(); // ['B','D','a','c'] Tuesday, September 8, 2009

Slide 52

Slide 52 text

pop removes and returns the last element of an array (opposite of shift) http://www.w3schools.com/jsref/jsref_pop.asp Tuesday, September 8, 2009

Slide 53

Slide 53 text

pop var car = ['c', 'a', 'r']; var last = car.pop(); last // 'r' car // ['c','a'] Tuesday, September 8, 2009

Slide 54

Slide 54 text

pop var car = ['c', 'a', 'r']; car.pop(); // 'r' car.pop(); // 'a' car.pop(); // 'c' car.pop(); // undefined car.length // 0 Tuesday, September 8, 2009

Slide 55

Slide 55 text

shift removes and returns the first element of an array (opposite of pop) http://www.w3schools.com/jsref/jsref_shift.asp Tuesday, September 8, 2009

Slide 56

Slide 56 text

shift var car = ['c', 'a', 'r']; var first = car.shift(); first // 'c' car // ['a','r'] Tuesday, September 8, 2009

Slide 57

Slide 57 text

shift var car = ['c', 'a', 'r']; car.shift(); // 'c' car.shift(); // 'a' car.shift(); // 'r' car.shift(); // undefined car.length // 0 Tuesday, September 8, 2009

Slide 58

Slide 58 text

push adds one or more elements to the end of an array and returns the new length (opposite of unshift) http://www.w3schools.com/jsref/jsref_push.asp Tuesday, September 8, 2009

Slide 59

Slide 59 text

push single element var car = ['c','a','r']; car.push('d'); // 4 car // ['c','a','r','d'] Tuesday, September 8, 2009

Slide 60

Slide 60 text

push multiple elements var car = ['c','a','r']; car.push('d', 'e', 'd'); // 6 car // ['c','a','r','d', 'e', 'd'] Tuesday, September 8, 2009

Slide 61

Slide 61 text

unshift adds one or more elements to the beginning of the array and returns the new length (opposite of push) http://www.w3schools.com/jsref/jsref_unshift.asp Tuesday, September 8, 2009

Slide 62

Slide 62 text

unshift single element var car = ['c','a','r']; car.unshift('s'); // 4 car // ['s','c','a','r'] Tuesday, September 8, 2009

Slide 63

Slide 63 text

unshift multiple elements var car = ['c','a','r']; car.unshift('o', 's'); // 5 car // ['o','s','c','a','r'] Tuesday, September 8, 2009

Slide 64

Slide 64 text

shift/unshift pop/push end of array beginning of array Tuesday, September 8, 2009

Slide 65

Slide 65 text

slice slices elements out of an array without changing array Tuesday, September 8, 2009

Slide 66

Slide 66 text

slice parameters array.slice(starting position, index after last position) Tuesday, September 8, 2009

Slide 67

Slide 67 text

slice with one argument var numbers = [1,2,3,4]; numbers.slice(2); // [3, 4] numbers // [1,2,3,4] slices from index to end of array Tuesday, September 8, 2009

Slide 68

Slide 68 text

slice with two arguments slices from beginning index to index before second argument var numbers = [1,2,3,4]; numbers.slice(0, 2); // [1, 2] numbers // [1,2,3,4] Tuesday, September 8, 2009

Slide 69

Slide 69 text

slice with negative second argument var numbers = [1,2,3,4]; numbers.slice(1, -1); // [2, 3] numbers.slice(1, -2); // [2] numbers // [1,2,3,4] negative starts from end and goes backwards Tuesday, September 8, 2009

Slide 70

Slide 70 text

splice adds and removes elements from an array http://www.w3schools.com/jsref/jsref_splice.asp Tuesday, September 8, 2009

Slide 71

Slide 71 text

splice parameters array.splice(index, how many to remove, elements to add) index and how many to remove are required Tuesday, September 8, 2009

Slide 72

Slide 72 text

removing an element from an array var letters = ['a', 'c', 'd']; letters.splice(1, 1); // 'c' letters // ['a','d'] in english: at index 1, remove 1 element Tuesday, September 8, 2009

Slide 73

Slide 73 text

removing multiple elements from an array var letters = ['a', 'c', 'd']; letters.splice(1, 2); // ['c','d'] letters // ['a'] in english: at index 1, remove 2 elements Tuesday, September 8, 2009

Slide 74

Slide 74 text

adding an element to an array var letters = ['a', 'c', 'd']; letters.splice(1, 0, 'b'); // ['a', 'b', 'c', 'd'] in english: at index 1, remove 0 elements, add ‘b’ Tuesday, September 8, 2009

Slide 75

Slide 75 text

adding multiple elements to an array in english: at index 1, remove 0 elements, add ‘b’ and ‘c’ var letters = ['a', 'c', 'd']; letters.splice(1, 0, 'b', 'c'); letters // ['a','b','c','c','d'] Tuesday, September 8, 2009

Slide 76

Slide 76 text

replacing elements in an array var car = ['c', 'a', 'r']; car.splice(0, 1, 'b'); // 'c' car // ['b','a','r'] Tuesday, September 8, 2009

Slide 77

Slide 77 text

var person = {name:'John Doe'}; person.name Tuesday, September 8, 2009

Slide 78

Slide 78 text

var person = {name:'John Doe'}; person.name 'John Doe' Tuesday, September 8, 2009

Slide 79

Slide 79 text

var person = {name:'John Doe'}; person.name = 'Jane Doe'; person.name Tuesday, September 8, 2009

Slide 80

Slide 80 text

var person = {name:'John Doe'}; person.name = 'Jane Doe'; person.name 'Jane Doe' Tuesday, September 8, 2009

Slide 81

Slide 81 text

var person = {name:'John Doe'}; person['name'] Tuesday, September 8, 2009

Slide 82

Slide 82 text

var person = {name:'John Doe'}; person['name'] 'John Doe' Tuesday, September 8, 2009

Slide 83

Slide 83 text

[12, 23, 36].length Tuesday, September 8, 2009

Slide 84

Slide 84 text

[12, 23, 36].length 3 Tuesday, September 8, 2009

Slide 85

Slide 85 text

[12, 23, 36].indexOf(12) Tuesday, September 8, 2009

Slide 86

Slide 86 text

[12, 23, 36].indexOf(12) 0 Tuesday, September 8, 2009

Slide 87

Slide 87 text

[12, 23, 36].indexOf(35) Tuesday, September 8, 2009

Slide 88

Slide 88 text

[12, 23, 36].indexOf(35) -1 Tuesday, September 8, 2009

Slide 89

Slide 89 text

['b','a','t'].join('') Tuesday, September 8, 2009

Slide 90

Slide 90 text

['b','a','t'].join('') 'bat' Tuesday, September 8, 2009

Slide 91

Slide 91 text

'9/8/2009'.split('/') Tuesday, September 8, 2009

Slide 92

Slide 92 text

'9/8/2009'.split('/') ['9', '8', '2009'] Tuesday, September 8, 2009

Slide 93

Slide 93 text

var numbers = [1,2,3]; numbers.push(4) numbers Tuesday, September 8, 2009

Slide 94

Slide 94 text

var numbers = [1,2,3]; numbers.push(4) numbers [1,2,3,4] Tuesday, September 8, 2009

Slide 95

Slide 95 text

var numbers = [1,2,3,4]; numbers.shift(); numbers Tuesday, September 8, 2009

Slide 96

Slide 96 text

var numbers = [1,2,3,4]; numbers.shift(); numbers [2,3,4] Tuesday, September 8, 2009

Slide 97

Slide 97 text

var numbers = [2,3,4]; numbers.unshift(1); numbers Tuesday, September 8, 2009

Slide 98

Slide 98 text

var numbers = [2,3,4]; numbers.unshift(1); numbers [1,2,3,4] Tuesday, September 8, 2009

Slide 99

Slide 99 text

var numbers = [2,3,4]; numbers.pop(); numbers Tuesday, September 8, 2009

Slide 100

Slide 100 text

var numbers = [2,3,4]; numbers.pop(); numbers [2,3] Tuesday, September 8, 2009

Slide 101

Slide 101 text

var numbers = [2,3,4]; numbers.splice(1, 0, 1); numbers Tuesday, September 8, 2009

Slide 102

Slide 102 text

var numbers = [2,3,4]; numbers.splice(1, 0, 1); numbers [2,1,3,4] Tuesday, September 8, 2009

Slide 103

Slide 103 text

var numbers = [2,3,4]; numbers.splice(0, 1, 1); numbers Tuesday, September 8, 2009

Slide 104

Slide 104 text

var numbers = [2,3,4]; numbers.splice(0, 1, 1); numbers [1,3,4] Tuesday, September 8, 2009