data types: arrays and objects

104
Data Types Objects and Arrays Tuesday, September 8, 2009

Upload: john-nunemaker

Post on 05-Dec-2014

1.848 views

Category:

Technology


0 download

DESCRIPTION

Introduction to objects and arrays in JavaScript.

TRANSCRIPT

Page 1: Data Types: Arrays And Objects

Data TypesObjects and Arrays

Tuesday, September 8, 2009

Page 2: Data Types: Arrays And Objects

objectscollection of properties and methods

Tuesday, September 8, 2009

Page 3: Data Types: Arrays And Objects

creating a new object

new Object()

Tuesday, September 8, 2009

Page 4: Data Types: Arrays And Objects

creating a new object(shortcut)

{}

Tuesday, September 8, 2009

Page 5: Data Types: Arrays And Objects

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

Page 6: Data Types: Arrays And Objects

keys can be strings

var student = {name:'John Doe', age:18};

var student = {'name':'John Doe', 'age':18};

Tuesday, September 8, 2009

Page 7: Data Types: Arrays And Objects

liberal formattingvar student = {name:'John Doe', age:18};

var student = { name:'John Doe', age:18};

var student = { name : 'John Doe', age : 18};

Tuesday, September 8, 2009

Page 8: Data Types: Arrays And Objects

writing properties

var student = {};student.name = 'John Doe';

Tuesday, September 8, 2009

Page 9: Data Types: Arrays And Objects

write as manyas you want

var student = {};student.name = 'John Doe';student.age = 18;student.gpa = 3.7;

Tuesday, September 8, 2009

Page 10: Data Types: Arrays And Objects

writing properties(shortcut)

var student = {name:'John Doe'};

Tuesday, September 8, 2009

Page 11: Data Types: Arrays And Objects

writing multiple properties

var student = {name:'John Doe', age:18, gpa:3.7};

Tuesday, September 8, 2009

Page 12: Data Types: Arrays And Objects

reading properties

var student = {name:'John Doe', age:18};

student.name // "John Doe"student.age // 18

Tuesday, September 8, 2009

Page 13: Data Types: Arrays And Objects

reading properties(alternative syntax)

var student = {name:'John Doe', age:18};

student['name'] // "John Doe"student['age'] // 18

Tuesday, September 8, 2009

Page 14: Data Types: Arrays And Objects

reading properties that are not set

var student = {name:'John Doe', age:18};

student.foobar // undefined

Tuesday, September 8, 2009

Page 15: Data Types: Arrays And Objects

different ways to dothe same thing

var student = {name:'John Doe', age:18};

student.name // "John Doe"student['name'] // "John Doe"

student.age // 18student['age'] // 18

Tuesday, September 8, 2009

Page 16: Data Types: Arrays And Objects

methodswe’ll cover them later

Tuesday, September 8, 2009

Page 17: Data Types: Arrays And Objects

arraysordered collection of values

Tuesday, September 8, 2009

Page 18: Data Types: Arrays And Objects

creating an array

new Array();

Tuesday, September 8, 2009

Page 19: Data Types: Arrays And Objects

new Array with no arguments

var things = new Array();things.length; // 0creates empty array

Tuesday, September 8, 2009

Page 20: Data Types: Arrays And Objects

new Arraywith one argument

var things = new Array(5);things.length; // 5

creates array with number of undefined elementsshouldn’t ever need to do this, but be aware

Tuesday, September 8, 2009

Page 21: Data Types: Arrays And Objects

new Arraywith 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

Page 22: Data Types: Arrays And Objects

summary

Tuesday, September 8, 2009

Page 23: Data Types: Arrays And Objects

creating an array(shortcut)

[]

Tuesday, September 8, 2009

Page 24: Data Types: Arrays And Objects

much more predictable

Tuesday, September 8, 2009

Page 25: Data Types: Arrays And Objects

array methods

Tuesday, September 8, 2009

Page 26: Data Types: Arrays And Objects

remember how stringsare zero indexed?

var car = "car";car[0] // ccar[1] // acar[2] // r

Tuesday, September 8, 2009

Page 27: Data Types: Arrays And Objects

arrays are too

var car = ['c', 'a', 'r'];car[0] // ccar[1] // acar[2] // r

Tuesday, September 8, 2009

Page 28: Data Types: Arrays And Objects

array of numbers

var things = [1,2,3,4,5];

things[0] // 1things[1] // 2things[2] // 3things[3] // 4things[4] // 5things[5] // undefined

Tuesday, September 8, 2009

Page 29: Data Types: Arrays And Objects

remember how strings know their length?

var football = "football";football.length // 8

Tuesday, September 8, 2009

Page 30: Data Types: Arrays And Objects

arrays do too

var things = [1,2,3,4,5];things.length // 5http://www.w3schools.com/jsref/jsref_length_array.asp

Tuesday, September 8, 2009

Page 31: Data Types: Arrays And Objects

remember how strings can get the indexOf stuff?

var football = "football";football.indexOf('f') // 0football.indexOf('o') // 1football.indexOf('foot') // 0football.indexOf('z') // -1

Tuesday, September 8, 2009

Page 32: Data Types: Arrays And Objects

arrays can too

var car = ['c','a','r'];car.indexOf('c'); // 0car.indexOf('a'); // 1car.indexOf('r'); // 2car.indexOf('b'); // -1

Tuesday, September 8, 2009

Page 33: Data Types: Arrays And Objects

more indexOf examples

var strings = ['aa', 'b', 'ccD'];strings.indexOf('aa') // 0strings.indexOf('ccD') // 2strings.indexOf('ccd') // -1

Tuesday, September 8, 2009

Page 34: Data Types: Arrays And Objects

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

Page 35: Data Types: Arrays And Objects

concatreturns joined arrays but does not alter them

http://www.w3schools.com/jsref/jsref_concat_array.asp

Tuesday, September 8, 2009

Page 36: Data Types: Arrays And Objects

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

Page 37: Data Types: Arrays And Objects

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

Page 38: Data Types: Arrays And Objects

concat with multi-dimensional

var multi = ['a', 'b', ['z', 'y']];multi.concat([1, 2]) // ['a', 'b', ['z','y'], '1', '2']

Tuesday, September 8, 2009

Page 39: Data Types: Arrays And Objects

joinjoins the elements of an array

into a string separated by a delimiter

http://www.w3schools.com/jsref/jsref_join.asp

Tuesday, September 8, 2009

Page 40: Data Types: Arrays And Objects

join

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

Tuesday, September 8, 2009

Page 41: Data Types: Arrays And Objects

join with delimiter

var car_letters = ['c', 'a', 'r'];car_letters.join(','); // "c,a,r"

Tuesday, September 8, 2009

Page 42: Data Types: Arrays And Objects

delimiter can be any string

var car_letters = ['c', 'a', 'r'];car_letters.join('WIN'); // "cWINaWINr"

Tuesday, September 8, 2009

Page 43: Data Types: Arrays And Objects

date example

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

Tuesday, September 8, 2009

Page 44: Data Types: Arrays And Objects

string has the opposite of join called split

var date = "9/8/2009"date.split('/') // [‘9’,‘8’,‘2009’]

Tuesday, September 8, 2009

Page 45: Data Types: Arrays And Objects

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

Page 46: Data Types: Arrays And Objects

reversereverses the order of an array

http://www.w3schools.com/jsref/jsref_reverse.asp

Tuesday, September 8, 2009

Page 47: Data Types: Arrays And Objects

reverse

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

Tuesday, September 8, 2009

Page 48: Data Types: Arrays And Objects

sortsorts the elements of an array

http://www.w3schools.com/jsref/jsref_sort.asp

Tuesday, September 8, 2009

Page 49: Data Types: Arrays And Objects

sorting numbers

var numbers = [5,3,99,77,2];numbers.sort(); // [2,3,5,77,99]

Tuesday, September 8, 2009

Page 50: Data Types: Arrays And Objects

sorting strings

var names = ['John', 'Steph', 'Steve', 'Carrie'];names.sort(); // ['Carrie','John','Steph','Steve']

Tuesday, September 8, 2009

Page 51: Data Types: Arrays And Objects

upper case before lower case

var letters = ['a', 'B', 'c', 'D'];letters.sort(); // ['B','D','a','c']

Tuesday, September 8, 2009

Page 52: Data Types: Arrays And Objects

popremoves and returns the last element of an array

(opposite of shift)

http://www.w3schools.com/jsref/jsref_pop.asp

Tuesday, September 8, 2009

Page 53: Data Types: Arrays And Objects

pop

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

Tuesday, September 8, 2009

Page 54: Data Types: Arrays And Objects

pop

var car = ['c', 'a', 'r'];car.pop(); // 'r'car.pop(); // 'a'car.pop(); // 'c'car.pop(); // undefinedcar.length // 0

Tuesday, September 8, 2009

Page 55: Data Types: Arrays And Objects

shiftremoves and returns the first element of an array

(opposite of pop)

http://www.w3schools.com/jsref/jsref_shift.asp

Tuesday, September 8, 2009

Page 56: Data Types: Arrays And Objects

shift

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

Tuesday, September 8, 2009

Page 57: Data Types: Arrays And Objects

shift

var car = ['c', 'a', 'r'];car.shift(); // 'c'car.shift(); // 'a'car.shift(); // 'r'car.shift(); // undefinedcar.length // 0

Tuesday, September 8, 2009

Page 58: Data Types: Arrays And Objects

pushadds 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

Page 59: Data Types: Arrays And Objects

push single element

var car = ['c','a','r'];car.push('d'); // 4car // ['c','a','r','d']

Tuesday, September 8, 2009

Page 60: Data Types: Arrays And Objects

push multiple elements

var car = ['c','a','r'];car.push('d', 'e', 'd'); // 6car // ['c','a','r','d', 'e', 'd']

Tuesday, September 8, 2009

Page 61: Data Types: Arrays And Objects

unshiftadds 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

Page 62: Data Types: Arrays And Objects

unshift single element

var car = ['c','a','r'];car.unshift('s'); // 4car // ['s','c','a','r']

Tuesday, September 8, 2009

Page 63: Data Types: Arrays And Objects

unshift multiple elements

var car = ['c','a','r'];car.unshift('o', 's'); // 5car // ['o','s','c','a','r']

Tuesday, September 8, 2009

Page 64: Data Types: Arrays And Objects

shift/unshift pop/pushend of arraybeginning of array

Tuesday, September 8, 2009

Page 65: Data Types: Arrays And Objects

sliceslices elements out of an array without changing array

Tuesday, September 8, 2009

Page 66: Data Types: Arrays And Objects

slice parametersarray.slice(starting position, index after last position)

Tuesday, September 8, 2009

Page 67: Data Types: Arrays And Objects

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

Page 68: Data Types: Arrays And Objects

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

Page 69: Data Types: Arrays And Objects

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

Page 70: Data Types: Arrays And Objects

spliceadds and removes elements from an array

http://www.w3schools.com/jsref/jsref_splice.asp

Tuesday, September 8, 2009

Page 71: Data Types: Arrays And Objects

splice parametersarray.splice(index, how many to remove, elements to add)

index and how many to remove are required

Tuesday, September 8, 2009

Page 72: Data Types: Arrays And Objects

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

Page 73: Data Types: Arrays And Objects

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

Page 74: Data Types: Arrays And Objects

adding an elementto 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

Page 75: Data Types: Arrays And Objects

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

Page 76: Data Types: Arrays And Objects

replacing elements in an array

var car = ['c', 'a', 'r'];car.splice(0, 1, 'b'); // 'c'car // ['b','a','r']

Tuesday, September 8, 2009

Page 77: Data Types: Arrays And Objects

var person = {name:'John Doe'};person.name

Tuesday, September 8, 2009

Page 78: Data Types: Arrays And Objects

var person = {name:'John Doe'};person.name'John Doe'

Tuesday, September 8, 2009

Page 79: Data Types: Arrays And Objects

var person = {name:'John Doe'};person.name = 'Jane Doe';person.name

Tuesday, September 8, 2009

Page 80: Data Types: Arrays And Objects

var person = {name:'John Doe'};person.name = 'Jane Doe';person.name'Jane Doe'

Tuesday, September 8, 2009

Page 81: Data Types: Arrays And Objects

var person = {name:'John Doe'};person['name']

Tuesday, September 8, 2009

Page 82: Data Types: Arrays And Objects

var person = {name:'John Doe'};person['name']'John Doe'

Tuesday, September 8, 2009

Page 83: Data Types: Arrays And Objects

[12, 23, 36].length

Tuesday, September 8, 2009

Page 84: Data Types: Arrays And Objects

[12, 23, 36].length

3

Tuesday, September 8, 2009

Page 85: Data Types: Arrays And Objects

[12, 23, 36].indexOf(12)

Tuesday, September 8, 2009

Page 86: Data Types: Arrays And Objects

[12, 23, 36].indexOf(12)

0

Tuesday, September 8, 2009

Page 87: Data Types: Arrays And Objects

[12, 23, 36].indexOf(35)

Tuesday, September 8, 2009

Page 88: Data Types: Arrays And Objects

[12, 23, 36].indexOf(35)

-1

Tuesday, September 8, 2009

Page 89: Data Types: Arrays And Objects

['b','a','t'].join('')

Tuesday, September 8, 2009

Page 90: Data Types: Arrays And Objects

['b','a','t'].join('')

'bat'

Tuesday, September 8, 2009

Page 91: Data Types: Arrays And Objects

'9/8/2009'.split('/')

Tuesday, September 8, 2009

Page 92: Data Types: Arrays And Objects

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

Tuesday, September 8, 2009

Page 93: Data Types: Arrays And Objects

var numbers = [1,2,3];numbers.push(4)numbers

Tuesday, September 8, 2009

Page 94: Data Types: Arrays And Objects

var numbers = [1,2,3];numbers.push(4)numbers[1,2,3,4]

Tuesday, September 8, 2009

Page 95: Data Types: Arrays And Objects

var numbers = [1,2,3,4];numbers.shift();numbers

Tuesday, September 8, 2009

Page 96: Data Types: Arrays And Objects

var numbers = [1,2,3,4];numbers.shift();numbers[2,3,4]

Tuesday, September 8, 2009

Page 97: Data Types: Arrays And Objects

var numbers = [2,3,4];numbers.unshift(1);numbers

Tuesday, September 8, 2009

Page 98: Data Types: Arrays And Objects

var numbers = [2,3,4];numbers.unshift(1);numbers [1,2,3,4]

Tuesday, September 8, 2009

Page 99: Data Types: Arrays And Objects

var numbers = [2,3,4];numbers.pop();numbers

Tuesday, September 8, 2009

Page 100: Data Types: Arrays And Objects

var numbers = [2,3,4];numbers.pop();numbers [2,3]

Tuesday, September 8, 2009

Page 101: Data Types: Arrays And Objects

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

Tuesday, September 8, 2009

Page 102: Data Types: Arrays And Objects

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

Tuesday, September 8, 2009

Page 103: Data Types: Arrays And Objects

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

Tuesday, September 8, 2009

Page 104: Data Types: Arrays And Objects

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

Tuesday, September 8, 2009