[Music kucheza] SPIKA 1: Naam, hapa sisi ni, mwisho kuweka P katika CS50. Kumpongeza wenyewe na kuwa na kuja hadi sasa tangu hujambo yako ya kwanza ulimwengu na uchapishaji nje piramidi kwa Mario. Unaweza kufanywa tovuti wiki iliyopita. Na tunakwenda kuwa maamuzi ya mtu mwingine wiki hii, moja kwamba utapata gari karibu Harvard ya chuo hicho, kuokota up CS50 wafanyakazi, na kuwaleta nyuma yao nyumba za makazi. Sasa wiki iliyopita sisi kazi katika PHP, server upande lugha. Kwa kuweka hii P, sisi ni kupata vishawishi kwa JavaScript, ambayo ni mteja upande lugha. Basi hebu tuangalie baadhi ya usambazaji kificho kwamba ni zinazotolewa na kwa kuweka hii P. Katika folder JavaScript, kutakuwa na kuwa kundi la JavaScript files. Kuna buildings.js, ambayo ina safu ya majengo karibu Harvard chuo, na habari zao na msimamo. Houses.js ni safu ya Harvard nyumba za makazi, na wao latitudo na longitude. Passengers.js ina safu ya abiria - Wafanyakazi wanachama CS50 - kuwa wewe utakuwa kuleta nyuma nyumba zao za kuishi. Math3D.js, ambayo ina mengi ya kazi ya kufanya na harakati. Kama wewe ni hesabu nia, basi mimi kuwakaribisha kuangalia. Lakini huna haja ya kuelewa kila kitu huko. Shuttle.js, ambayo inahusika na harakati kuhamisha ya. Na index.html ni ukurasa wa nyumbani ambapo kila kitu kinachotokea, kwa kweli, ambapo user ni mazungumzo na tovuti. Service.css ni karatasi CSS style, ambayo, pamoja na Twitter Bootstrap maktaba, udhibiti jinsi index.html inaonekana. Na kisha sisi pia kuwa service.js, ambayo ina kazi huduma kwa kuhamisha. Na hapa ni wapi utaenda kuwa kujaza katika baadhi ya kwa dos. Sasa hebu tuangalie vitu na arrays associative katika JavaScript, ambayo kwa makusudi na madhumuni ya ni kubadilishana. Kama nilitaka kufanya kitu variable aitwaye wand, napenda kutangaza. Na ndani ya braces wale curly napenda bayana msingi ni nyati. kuni ni cherry. Na urefu ni 13. Sasa naweza pia kupata maadili wa vitu kwa kutumia associative safu nukuu. Hivyo wand index msingi, siwezi kuweka sawa sawa kwa nyati, au kuangalia kwamba, kama mimi haja. Au naweza kutumia dot operator. Wand dot kuni sawa na cherry, na kadhalika, na kadhalika. Hivyo unaweza kuona kwamba arrays associative na vitu katika JavaScript ni kwenda kuwa kubadilishana, na mapenzi kuja katika Handy kabisa. Kisha sisi kuona safu ya majengo katika buildings.js. Tena, safu ya vitu. Kama nilitaka kufanya safu ya bora majengo juu ya Harvard ya chuo hicho, kisha Napenda kufanya hivyo kama ifuatavyo. Kutumia nukuu hii kitu, ambapo Mimi kuhifadhi mizizi, jina, anwani, latitude, na longitude kwa kila moja kujenga kitu. Hebu haraka majadiliano juu ya vigezo katika JavaScript. Kama PHP, JavaScript vigezo ni weakly au loosely typed. Kujenga variable ndani, wewe kiambishi jina variable na V-A-R, var. Sasa katika JavaScript, kazi mapenzi kupunguza wigo wa vigezo. Hivyo kama una variable za mitaa ndani ya kazi, kisha kazi nyingine hawawezi kupata hiyo. Lakini tofauti na C, loops na hali hawana kupunguza wigo wa kutofautiana. Hivyo hata kama wewe kutangaza ndani ya hali, kazi nzima kuwa na huduma hiyo. Sasa bila var, variable itakuwa kimataifa. Hivyo kama wewe tu kutangaza jina na kuwapa thamani, basi, kwamba variable itakuwa variable kimataifa katika JavaScript. Sasa katika nyumba, tuna associative safu ya vitu aina nyumba, ambapo kila nyumba ni tu latitude na longitude. Basi tuna abiria safu, ambayo ni safu ya kitu aina ya abiria. Hivyo kila abiria ina jina la mtumiaji, jina, na nyumba. Taarifa kwamba mimi nina kuona ya aina abiria, ambayo kwa kweli ina maana kwamba kila kitu ina sawa muhimu jozi thamani. Hivyo kila kitu ya aina abiria ina jina la mtumiaji, jina, na nyumba. Basi je, tunahitaji kufanya kwa ajili ya P kuweka? Naam, tunahitaji kuruhusu watumiaji kuchukua up wafanyakazi, kwa kuonyesha yote ya wafanyakazi ambayo kwa sasa ni katika kuhamisha zetu, na kuacha yao mbali. Na kisha tutaweza pia kuzungumza kuhusu ziada makala ambayo yanaweza kutekelezwa kwa kuhamisha P kuweka. Lakini hebu majadiliano juu ya Pickup kwanza. nyuso za wafanyakazi CS50 wamekuwa sehemu zote za chuo, ambapo kila uso unatekelezwa kama alama mahali duniani 3D, na kama marker kwenye ramani yenye P2. Hivyo wakati mtumiaji Clicks Pickup kifungo, tunataka kuongeza jirani abiria kwa kuhamisha. Na sisi pia unataka kuondoa nafasi yao alama kutoka ulimwenguni, na kuondoa yao marker kutoka ramani, kuonyesha kwamba wao uko katika kuhamisha wetu sasa. Hivyo ni jinsi gani sisi kuchunguza kama abiria ni ndani ya mbalimbali ya kuhamisha yetu? Naam, mbali kazi - hivyo kuhamisha dot mbali, kupita katika latitude na longitude, mapenzi mahesabu ya umbali kutoka sasa nafasi ya kuhamisha uhakika kwamba wewe taja na kwamba kutokana na latitude na longitude. Hivyo unaweza kutumia hii kwa mahesabu ya umbali kutoka kuhamisha abiria. Lakini jinsi gani unajua ambapo abiria ni? Naam, hiyo ni ambapo tutaweza kuwa na hariri na idadi ya kazi. Na idadi ya maeneo yote ya wafanyakazi na abiria ulimwenguni, na katika ramani, lakini haina kuhifadhi eneo lao. Hivyo labda unaweza kuhifadhi yao mahali alama na alama katika baadhi safu kimataifa. Sasa tayari kuna ni safu kimataifa kuhifadhi taarifa kutoka kwa abiria. maduka ya abiria safu ya kila jina abiria na nyumba zao. Hivyo labda unaweza kuongeza vigezo chache kuna abiria vitu. Kutusaidia kuchunguza abiria wote ndani ya mbalimbali ya kuhamisha wetu, wacha kitanzi kwa njia zote za abiria abiria safu. kwa kitanzi katika JavaScript ili kuangalia kitu kama hii, ni sawa na wale kwa kitanzi katika C. Au tunaweza kutumia mbadala kwa ajili ya kitanzi muundo. Kwa var i katika safu, ambapo mimi bado kuwa index. Lakini huna haja ya kutaja safu dot urefu hali, na i pamoja na plus. Eneo kila abiria ni uliotolewa na wao alama mahali. Lakini alama mahali ni si latitude na longitude. Tuna kupata vigezo wale na kupata jiometri, kwa kutumia kupata jiometri juu ya alama mahali. Na kisha mara moja tuna jiometri, kupata ama latitude au longitude, kwa kutumia kazi hizo. Hivyo sasa tunajua jinsi ya kuchunguza kama abiria ni ndani ya mbalimbali ya kuhamisha wetu. Mara baada ya sisi na abiria hao, tutaweza unataka kuongeza abiria yoyote ambayo ni ndani ya mbalimbali. Tunataka kuwaruhusu hop juu, na kuchukua kiti cha juu ya kuhamisha wetu, lakini tu kama tuna nafasi ya kutosha kwa ajili yao. kuhamisha dot viti safu mapenzi kuonyesha kama viti ni tupu, au ambaye ni katika kiti cha. Hivyo kama kiti ni tupu, kisha kiti cha itakuwa null. Hivyo iterate juu ya viti safu, kuangalia kwa viti tupu, kuhifadhi abiria katika viti wale mpaka hawana viti yoyote zaidi tupu. Na kwa bahati mbaya, abiria nyingine yoyote itabidi kusubiri kwa wakati mwingine kuhamisha inakuja kote. Mara baada ya wao kupata kuhamisha, sisi utasikia wanataka kuondoa yao alama mahali, ambayo ni picha zao katika dunia 3D. Kama nilitaka kuondoa mahali alama p, basi napenda kupata yote ya makala kutoka nchi yangu, Google Earth, na kisha kuondoa mahali maalum alama ya kutumia removeChild kazi. Kisha mwisho, hebu kuondoa marker, icon juu ya P2 ramani kwa yoyote abiria kwamba sisi ni kuokota. Kuondoa marker, m, basi mimi itabidi tu kutekeleza m dot setMap null. Je, hii kwa ajili ya abiria yoyote ndani ya mbalimbali, na kumaliza ya Pickup.