[Tónlist spila] Ræðumaður 1: Jæja, hér erum við, síðasta P sett í CS50. Hamingju yður frá að hafa komið svo langt síðan fyrsta halló þín heima og prenta út pýramýda fyrir Mario. Þú lést á vefsíðu síðustu viku. Og við erum að fara að vera að gera eitthvað annað í þessari viku, eitt sem gerir þér kleift að keyra um Harvard háskólasvæðinu, tína upp CS50 starfsmenn, og uppeldi þá aftur til þeirra íbúðarhús. Nú í síðustu viku unnum við í PHP, hlið miðlara tungumál. Fyrir þetta P sett, við erum að fá kynnt JavaScript, sem er viðskiptavinur hlið tungumál. Þannig að við skulum taka a líta á sumir af the dreifingu kóða sem er veitt til þér fyrir þetta P setja. Í Javascript möppunni, það verður vera fullt af JavaScript skrá. Það er buildings.js, sem inniheldur array bygginga kringum Harvard Campus, með upplýsingum og stöðu. Houses.js er fylki af Harvard íbúðarhús, með sínum breiddargráðum og longitudes. Passengers.js inniheldur array farþega - the CS50 starfsfólk - að þú munt vera að koma aftur til íbúðarhús þeirra. Math3D.js, sem inniheldur mikið af aðgerðir til að gera með hreyfingu. Ef þú ert stærðfræðilega sinnaður, þá vil ég bjóða ykkur velkomin að kíkja. En þú þarft ekki að skilja Allt við það. Shuttle.js, sem fjallar hreyfing Skutla er. Og index.html er heimasíða þar allt sem gerist, í raun, þar sem notandi er samskipti við síðuna. Service.css er CSS stíll lak, sem, til viðbótar við Twitter Ræsi bókasafn, eftirlit hvernig index.html útlit. Og þá höfum við líka service.js sem inniheldur þjónustubeiðnir virka fyrir The skutla. Og hér er þar sem þú ert að fara að vera fylla í sumum af að DOS. Nú skulum taka a líta á hlutum og tengin fylki í JavaScript, sem fyrir alla intents og tilgangi eru víxlanlegur. Ef ég vildi gera hlut breytu kallað vendi, ég myndi lýsa það. Og inni þessum hrokkið axlabönd ég myndi tilgreina kjarninn er Einhyrningsins. The viður er kirsuber. Og lengdin er 13. Nú get ég líka aðgang að gildum af hlutum með tengin array ritháttur. Svo vendi vísitölu algerlega, get ég stillt sem jafn Einhyrningsins, eða athuga það, ef ég þarf. Eða ég get notað punktur stjórnandi. Vendi punktur viður jafngildir kirsuber, og svo framvegis, og svo framvegis. Svo þú sérð að tengin fylki og hlutir í JavaScript er að fara að vera víxlanlegur og mun komið í alveg vel. Þá sjáum við fjölda bygginga í buildings.js. Aftur, fylki af hlutum. Ef ég vildi gera á fjölbreytta besta byggingar á Harvard háskólasvæðinu, þá Ég myndi gera það eins og hér segir. Using this mótmæla táknun, þar Ég geyma rót, nafn, heimilisfang, breiddar, og lengdargráðu fyrir hvert einn bygging mótmæla. Við skulum tala fljótt um breytur JavaScript. Eins og PHP, JavaScript breytur eru veikt eða lauslega slegið. Til að búa til staðbundna breytu, forskeyti þú breytan nafn með V-A-R, var. Nú í JavaScript aðgerðir munu takmarka umfang breytur. Svo ef þú hafa a heimamaður breytu innan fall, þá aðrar aðgerðir getur ekki opnað það. En ólíkt C, lykkjur og skilyrði ekki takmarka umfang breytu. Svo jafnvel ef þú lýsa það inni í Skilyrði, allt aðgerð mun hafa aðgang að henni. Nú án Var, breytan á heimsvísu. Þannig að ef þú lýsa bara nafnið og úthluta gildi, þá breytu verður alþjóðlegt breytu JavaScript. Nú í hús, höfum við tengin fylki af húsi tegund mótmæla, þar Sérhvert hús er bara breiddar og lengdargráðu. Þá höfum við farþega array, sem er fylki af gerðinni mótmæla farþega. Svo hefur hver farþegi notandanafn, nafn, og hús. Takið eftir að ég ætla að sjá um gerð farþega, sem í raun þýðir bara að sérhver hlutur hefur að Sama lykill gildi par. Svo hefur sérhver hlutur af taginu farþega notandi nafn, nafn, og hús. Svo hvað þurfum við að gert fyrir P setja? Jæja, við þurfum að leyfa notendum að velja upp starfsfólki, til að birta allar Starfsmenn sem eru nú í skutla okkar, og til að falla þá burt. Og þá munum við einnig tala um auka aðgerðir sem hægt er að innleiða til The skutla P setja. En við skulum tala um pallbíll fyrst. Andlit CS50 starfsmenn hafa verið gróðursett allt háskólasvæðið, þar sem hver andlit er útfært sem setja merki á 3D jörðinni, og sem merki á 2D kortinu. Svo þegar notandi smellir á pallbíll hnappinn, viljum við að bæta í nágrenninu farþegum til skutla. Og við viljum líka að fjarlægja þeirra stað merkja frá heiminum, og fjarlægja þeirra merki frá kortinu, sem gefur til kynna að þeir eru í skutla okkar núna. Og hvernig eigum við að uppgötva ef farþegar ert innan skutla okkar? Jæja, sem virka fjarlægð - svo skutla punktur fjarlægð, sem liggur í lengdar-og breiddargráðu, mun reikna fjarlægð frá núverandi staða rúta til benda sem þú tilgreinir við að gefið breiddar-og lengdargráðu. Svo þú getur notað þetta til að reikna fjarlægð frá rúta til farþegar. En hvernig veistu hvar farþegar eru? Jæja, það er þar sem við verðum að breyta byggja virka. Byggja stöðum allt frá starfsfólki og farþega í heiminum, og inn í kortinu, en ekki geyma staðsetningu þeirra. Svo kannski er hægt að geyma þeirra setja merki og merki í sumum alþjóðlegum fylkisins. Nú þegar er alþjóðlegt array geyma upplýsingar frá farþegum. Farþegar array geymir hver nafn farþega og húsið þeirra. Svo kannski er hægt að bæta við nokkrum þáttum það farþega mótmæla. Til að hjálpa okkur að uppgötva öll farþega innan skutla okkar, við skulum lykkja í gegnum alla farþega í farþega fylkisins. For lykkju í JavaScript gæti litið eitthvað eins og þetta, mjög svipað þá for lykkju í C eða við getum notað val fyrir lykkja. Fyrir VAR ég í fylki, þar sem ég mun enn vera vísitölunni. En þú þarft ekki að tilgreina array punktur lengd ástand, og ég auk plús. Staðsetning hver farþegi er gefið setja merki þeirra. En staðurinn árangur er ekki breiddar og lengdargráðu. Við verðum að opna þau breytur með fá rúmfræði, með fá rúmfræði á þeim stað merkja. Og svo þegar við höfum rúmfræði, fá annaðhvort breiddar eða á lengdar, að nota þessar aðgerðir. Svo nú vitum við hvernig á að greina hvort farþegar eru innan svið skutla okkar. Þegar við höfum þá farþega, munum við langar að bæta við farþega sem eru innan þess svið. Við viljum leyfa þeim að hoppa á, og taka sæti á skutla okkar, en aðeins ef við höfum nóg pláss fyrir þá. The skutla punktur sæti array mun kynna hvort sæti eru tóm, eða sem er í því sæti. Svo ef sæti er tómur, þá sem sæti verður null. Svo iterate yfir sætum fylking, stöðva fyrir auð sæti, geyma farþega í þessum sætum þar til þú ekki hafa allir fleiri tóm sæti. Og því miður, allir aðrir farþegar verður að bíða eftir að næst þegar skutla kemur í kring. Þegar þeir fá á skutla, munum við viljum að fjarlægja setja merki sitt, sem er mynd þeirra í 3D heiminum. Ef ég vildi að fjarlægja setja merki á bls, þá myndi ég fá alla þá valkosti frá jörðu minn, frá Google Earth, og þá fjarlægja þessi sérstakur staður merkja með removeChild virka. Þá loks, við skulum fjarlægja merkið, táknið á kortinu 2D til hvaða farþega sem við erum að tína upp. Til að fjarlægja merki, m, þá ég bara framkvæma m punktur setMap null. Gera þetta fyrir hvaða farþega á svæðinu, og þú hefur lokið pallbíll.