Компьютер, Програмчлалын
JavaScript-массив болон түүний бүтээл. JavaScript массивын-ий тухай мэдээлэл
Энэ нийтлэлд бид JavaScript-массив, түүний бүрэлдэхүүн хэсэг дээр харагдах болно. JavaScript програмчлалд зориулагдсан төгс дүр чиглэсэн хэл юм. Үнэн хэрэгтээ энэ нь ECMAScript хэл (стандарт ECMA-262) хэрэгжүүлдэг.
JavaScript вэ? Энэ дагуу хэрэглэх хөтөлбөрийн замыг тодорхойлохын тулд агуулагдсан хэл болгон ашиглаж байна. Энэ хөтөч дээр олж болно: энэ нь интерактив вэб хуудас өгдөг бөгөөд скрипт хэл гэж байдаг ашиглаж байна.
Энэ бүтээгдэхүүний гол архитектурын онцлог динамик, сул бичиж, эхний эмнэлгээс гарах объект байдаг avtoupravlenie санах ойн хамгийн тохиромжтой програмчлалын үйл ажиллагаа юм.
Үнэн хэрэгтээ JavaScript-д учир нь хөгжлийн Java төстэй, харин програм гэхэд нь хэрэглэхэд хялбар нь хэлийг бий болгох юм, өөр өөр шалтгаан нөлөөлсөн. Дашрамд хэлэхэд, JavaScript хэл нь вэб хөгжүүлэгчдийн хэрэглэдэг програмчлалын хэв маяг нь олон тооны ялгаатай болгодог аливаа компани, байгууллагын эзэмшиж байна.
Энэ нь тэмдэглэх нь зүйтэй JavaScript гэж - Oracle корпораци Group-ийн бүртгэгдсэн худалдааны тэмдэг.
нь массив гэж юу вэ?
Дуудагдсан массив өгөгдлийн төрөл, дугаарлагдсан утгыг хадгалдаг. Ийм утга бүр нь массив бүрэлдэхүүн болон оронтой үүнээс бүрэлдэхүүн холбодог гэж нэрлэдэг индексийг гэж нэрлэдэг. untyped нь JavaScript-массив. Энэ нь хатуу хэсгүүд ижил массив хамаарах өөр өөр хэсгүүд нь ямар ч төрлийн, шал өөр төрөлтэй байна байж болно гэсэн үг юм.
Үүнээс гадна, JavaScript-массив нь динамик бөгөөд энэ нь тогтсон хэмжээтэй зарласан байх шаардлагагүй гэж хэлсэн байна. ямар ч үед шинэ хэсгийг нэмж дараа.
хатуу үйлдвэрлэл
JavaScript хэл ашиглах нь массив нь маш хэцүү бий болгох. Энэ хоёр арга байдаг. Эхний шууд ашиглан массив үйлдвэрлэл багтана - хавтгай дөрвөлжин хаалтанд бөгөөд дотор зүйлсийн жагсаалтыг байрлуулсан байдаг, таслалаар хуваана.
- VAR хоосон = []; // хоосон массив;
- VAR numers = [4, 1, 2, 5]; // таван дижитал бүрэлдэхүүн хэсэг нь массив;
- VAR ялгаа = [1.5, худал, «текст"]; // өөр өөр төрлийн гурван элемент нь массив.
Дүрмээр бол, энэ нь энгийн утга (мөр, утасны дугаар) байх шаардлагатай байна. Энэ нь мөн бусад илэрхийллүүд нь, жишээ нь, объект литерал, бусад чиг үүрэг болон массив байж болно.
нь массив дизайнер бий болгох хоёр дахь арга нь массив гэж нэрлэдэг юм (). гурван аргын аль нэг нь түүнийг урьж байна:
- нэмэлт өгөгдлүүдтэй ямар нэг дизайнер дуудлага: VAR б - Шинэ массив (). Энэ нь хоосон шууд [] нь тэнцэх хоосон массив бий болгох болно.
- загвар зохион бүтээгч тодорхой зааж массив бүрэлдэхүүн хэсгүүдийн утга N байна: VAR б = шинэ Array (1, 3, 5, 8, "мөрийн», үнэн). Энэ тохиолдолд, загвар зохион бүтээгч нэмэлт өгөгдлүүд нь шинэ массив бүрэлдэхүүн хэсэг болгон хувиргасан байна жагсаалтыг танилцуулсан. Нэмэлт өгөгдлүүд нь массивт бичгээр байна заасан байрлал юм.
- цаашид хийлгэх утгын цар хүрээг тодорхойлох. Энэ нь хаалтанд хаалттай тоо илрүүлэх массивыг зааж үүнийг хийж болно: VAR б = шинэ Array (5). илрүүлэх энэ арга нь хуваарилалт нь массив танилцуулга утгыг оноох нь боломж бүхий бүрэлдэхүүн шаардагдах хэмжээний (тус бүр нь тодорхойгүй хэмээн орсон байгаа) багтана. Энэ хэлбэр нь ихэвчлэн түүний урт нь урьдчилан мэдэгдэж байгаа Javascript-массивыг урьдчилан хуваарилж ашиглаж байна.
, Бичлэг уншиж, массивын дэлгэрэнгүй мэдээллийг нэмж
[] Оператор дамжин байж болно массивын бүрэлдэхүүн хэсэг нь аваарай. Дашрамд JavaScript-д бүрэлдэхүүн бүх тэгээс эхлэн дугаарласан байна. шаардлагатай элементүүдийг авахын тулд, түүний тоог зааж дөрвөлжин хаалтанд. Ерөнхийдөө хувьд зүйлс өөрчлөгдөж болно. А JavaScript массив нэмэх, энэ нь шинэ утга оноож хангалттай байдаг.
Энэ нь JavaScript-д массив ямар элементийн хэд ч хадгалж чадна гэдгийг тэмдэглэх нь зүйтэй.
Массивын урт нь
Тиймээс бид ямар JavaScript мэднэ. Ерөнхий-д массив урт нь сонирхолтой үзэгдэл юм. АНУ-ын илүү дэлгэрэнгүй үүнийг авч үзье. Бүх зурвасыг Array Designer () ашиглан барьсан ба шууд массив замаар тодорхой хэмжээний хөрөнгө, зав элементийн нийт тоо татгалзсан илэрсэн байдаг байна. массив нь дэлгэрэнгүй мэдээллийг нь тодорхойгүй байж болно (томилогдсон тодорхойгүй) нь илүү үнэн зөв илэрхийлэл төдий сонсогдож: Чанарын урт нь массив нь бүрэлдэхүүн хэсгийн хамгийн олон (индекс) -аас нэгээр нь үргэлж их байдаг. Чанарын урт нь шинэ дэлгэрэнгүй мэдээллийг нь массивын төрхийг үнэн зөв амьдарч, автоматаар тохируулна.
Массивын эцсийн бүрэлдэхүүн хэсэг харуулах тулд та урт нь эд хөрөнгийг ашиглаж болно.
Сүүлийн хэсэг нь индекс нэг нь массивын хэмжээ бага байна. Тоолуур дараа эхнээс нь үргэлж эхэлнэ. Өө, энэ JavaScript! Массивын урт элемент нь тодорхой тооноос хамаарна. Тиймийн тул, та хэр олон байх ёстой мэдэхгүй байна, гэхдээ хэрэв та массив эцсийн элемент хандах хэрэгтэй, шаардлагатай тайлан хэрэглэх явдал юм: v.length - 1.
хэсгээс массивыг Iterate
Маш олон удаа, урт нь үл хөдлөх хөрөнгийн мөчлөг дэх хэсгийн массив дээр iterate хэрэглэгддэг:
- VAR жимс жимсгэнэ = [ «гүзээлзгэнэ", "тоор", "Apple", "гадил"];
- нь (VAR I = 0; Би fruits.lenght <Би ++);
- document.write (жимс [би] + «...»).
Энэ жишээн дээр энэ нь бүрэлдэхүүн хэсэг тасралтгүй зохион байгуулж, эхний хэсэгт, индекс тэг барьж эхэлж байгаа нь харагдаж байна. Хэрэв ийм тохиолдол биш юм бол, энэ нь тодорхойлсон бол массивын элемент бүрийг дуудаж өмнө шалгасан байх ёстой.
мөчлөг бас заримдаа бүрэлдэхүүн эхлүүлэх ашиглаж байна.
өсөлт болон Огтлол массив
Би массивт оруулах хэрхэн хэл JavaScript мөрийг ашиглан нэмэх болов? массивын ажиллах явцад, урт урт нь автоматаар чанарыг, бид өөрөө анхаарал тавих хэрэгтэй учраас сайжруулдаг. Энэ нь нэг дэлгэрэнгүй санах нь чухал юм - урт нь үл хөдлөх хөрөнгийн зөвхөн уншигдах боломжтой биш, харин дээд амжилт юм. Чанарын урт шинж үнэ одоогийн хэмжээг өгдөг бол, массив нь урьдчилан тодорхойлсон утга буурсан байна. утга нь сэргээх гэсэн үг - Хэрэв та дараа нь урт эргэж буцах байсан ч гэсэн индекс, налах, тэдний үнэт зүйлс шинэ хязгаарт орсон биш юм аливаа бүрэлдэхүүн, алдсан байна.
foo.length = 0: яг л адил массивыг цэвэрлэх.
Массивын эцэст урсгал урттай одоогийн утгаас их, чанар шинэ, үл мэдэгдэх бүрэлдэхүүн хэсэг, хүссэн хэмжээгээр нь түүнийг нэмэгдүүлэх болно байх юм бол.
дэлгэрэнгүй мэдээллийг нь массивыг устгах
Delete оператор тодорхойгүй тулд массивын бүрэлдэхүүнийг харуулж байна, гэхдээ энэ нь энэ тохиолдолд оршин байна. Та үлдсэн хэсэг нь сул газар шилжсэн учраас массивын JavaScript элементийг устгах хүсэж байгаа бол, та массивыг урьдчилан арга замуудын нэг ашиглах хэрэгтэй. цуцлах бүрэлдэхүүн болон арга Splice () - - арга Array.shift () нь эхний хэсэг нь, поп () арилгадаг нэг бүрэлдэхүүн хэсэг буюу хаана ч массивыг хэлбэлзэж байна.
олон талт массив
Энэ нь бид бага зэрэг ойлгох юм шиг санагддаг ямар JavaScript. Хоёр хэмжээст массив - хэрэгтэй цаашид авч болно. Та JavaScript массив бусад зүйлсийн бүрэлдэхүүн хэсэг болгон агуулж болно гэж санаж байна уу? Энэ боломж нь олон хэмжээст массивын үйлдвэрлэхэд ашиглаж байна. массивын нь массив дахь бүрэлдэхүүн очиж хоёр удаа хаалт хэрэглэх хангалттай байдаг.
ассоциатив массив
Одоо бид барааны тэмдэг хэрхэн JavaScript ассоциатив массивууд ашигладаг сурдаг. Үүнийг хийхийн тулд бид онол руу харах хэрэгтэй: ассоциатив массив заримдаа хэш хүснэгтүүдийг гэж нэрлэдэг. оронд индекс эгнээ тэдний ачаар хэрэглэж байна. энгийн биетийн шинж нэрийг ашиглах санагдуулам ийм бүтэц ашиглах, гэхдээ энэ нь биелэл нь нь массив хэлбэрээр ажлын гүйцэтгэл. JavaScript массив ассоциатив удирдаж ямар ч арга зам байхгүй тул тэд ердийн хамаагүй бага байнга ашиглаж байна. Тэд одоо ч өгөгдөл хадгалах нь ашигтай байж, эд анги, хандаж болно хадгалах хялбар болно гэдгийг тэмдэглэх нь зүйтэй.
Гаралтын массив
Харин одоо бид JavaScript системийн судлах вэ? (Дэлгэцэн дээр) харилцах цонхон тулд гаралтын массив, түүнчлэн массив нь бүрэлдэхүүн хэсгийн гаралт утга.
хөтөлбөр нь та бүх бүрэлдэхүүн хэсэг нь үнэ цэнийг харуулах хүсэж байгаа бол, дараа нь энэ зааврыг хэрэглэх нь тохиромжтой юм. Сонирхолтой нь, массив нь индексийн бүрэлдэхүүн хэсэг гэж тэр үед ашиглах хувьсах эсрэг дүрэм.
цэвэрлэх
JavaScript-ийн массивыг шүүх тулд та түүний уртыг анхны байдалд нь оруулах хэрэгтэй:
- VAR myArray = [1, 2, 5, 23];
- myArray.length = 0.
Дараах хүрээнд, JavaScript-загвар нь очих нь тодорхой () хэрэгжилтэд харуулж байна:
- тодорхой: функц () {;
- this.length = 0;
- Энэ буцаах;
- }.
бүрэлдэхүүн нэмж, хасах
За, бид цаашид энэ сэтгэл хөдөлгөм JavaScript хэл судлах байна. массив элемент аль болох болон устгах болон бусад объектын ердийн шинж адил замыг нэмж болно. Гэхдээ зарим нэг ялгаа бий: тоон шинж чанар нь урт өөр өөр байж болно нэмж, харин шинж уртын өөрчлөлт нь тоон чанарыг арилгаж болно. Зарчмын хувьд, массивын-д суулгах алгоритмийн талаар дараах байдалтай байна:
- , Би дижитал үл мэдэгдэх шинж чанарыг нэмж байгаа бол урт нь тэнцүү эсвэл би-ээс бага бол урт нь би + 1 байж шийдсэн юм.
- Та дараах алхмуудыг гүйцэтгэх урттай чанарыг өөрчлөхөд: оноосон утга тэгээс бага бол, дараа нь RangeError шидэж байна. Шинэ урттай тэнцүү, мөн илүү бүх тоон чанарын индексийг арилгадаг.
Үнэндээ JavaScript массив элемент нь энгийн устгаж болно. Эцсийн эцэст, тэр ч байтугай уртыг, та нь "нэмэлт" бүрэлдэхүүн хэсгүүдийг арилгах хэрэгтэй. Энэ цэвэрлэх сонголт массиваас дагадаг. хувьсагч нь ямар нэг шалтгаанаар шинэ хоосон массивыг, томилсон бол сэтгэл хангалуун бус байсан бөгөөд энэ нь гүйдэл анхны байдалд нь оруулах шаардлагатай, түүний чанарын тэг утгыг зааж өгөх хангалттай урт байна.
unshift арга зүй, өөрчлөлт, поп болон түлхэх
Массивын бүрэлдэхүүн хэсэг гараар өөрчлөгдсөн хэдий ч, олон энэ нь цуг бүтээгдсэн арга хэрэглэхийг санал болгож байна. Энэ нь нэлээд чанартай, зөв үнэ цэнэ, массив дамжуулалт нь урт дутмаг баталгаа юм. Дашрамд хэлэхэд, зөв урттай чанарын бүрэлдэхүүн тоог харгалзах болно.
үйл явц нь массив нь дамжуулсан зүйлсийн төгсгөл түлхэж хөдөлгөдөг. буцаж ирэх үйл явц нь эцсийн бүрэлдэхүүн өгч, түүнийг устгана.
урттай шинэ үнэ цэнийг - Ер нь Internet Explorer-д найм дахь хувилбар дор unshift тодорхойгүй, бусад браузер буцаж болно. илүү найдаж unshift-аас буцах утга биш гэдгийг Тиймээс.
массив дунд хэсгээс нэмэх ба устгах
Та JavaScript нь массивыг устгах хүсэж байгаа бол, та авах хэрэгтэй вэ? Энэ арга нь гарын үсэг гагнуурын Array.prototype.splice гэж нэрлэдэг.
Тэр индекс эхлэхээс эхлэн массив deleteCount бүрэлдэхүүн гарч байгаа. та хоёр илүү нэмэлт өгөгдлүүдийг дамжуулах бол, массив дахь бүх дараагийн нэмэлт өгөгдлүүд нь татан буулгасан оронд зохион байгуулагдсан байна. эхлэл хасах юм бол, наад индекс сэргээж зарлагын урттай тэнцүү + эхэлнэ. алсын элементийн массив буцах явагддаг.
Үнэн хэрэгтээ, гагнуурын аргаар, хэрэв боломжтой бол массивын дундаас бүрэлдэхүүн арилгах буюу массив дахь хаана ч ямар ч тоог нэмэх явдал юм.
энгийн биелэл, би индекс бүрэлдэхүүн арилгах шаардлагатай бол, массив параметр би 1 нь гагнуурын аргыг хүсэх хэрэгтэй.
Зарчмын хувьд, гагнуурын аргын үед хоёр дахь сонголт нь заавал биш, харин хөтөч бүрт нэг аргумент нь функц зан өөр байна.
Жишээлбэл, Firefox, сүүлийн өөрчлөлт нь Дуурь бол массивын төгсгөл өмнө бүх мэдээллийг Safari ба Chrome-д устах болно.
ямар нэг бүрэлдэхүүн хэсэг IE нь үгүй болдог. Эхний өөрчлөлт Дуурь зан урьдчилан таамаглах боломжгүй юм - индекс нь эхэнд нь нэг зүйл устах болно - 1. Тиймээс энэ арга нь хамгийн багадаа хоёр бүрэлдэхүүн хэсгүүдийг дамжуулах шаардлагатай үргэлж байдаг.
түлхүүрүүд
Мэдээж хэрэг, JavaScript сурах, ассоциатив массив, өмнө дурдсан, та бас анзаарахгүй байх ёстой. Энэ мэдээлэл (өгөгдөл дэлгүүрт интерфэйс), хэлбэрээр "(гол, үнэ цэнэ)" болон түүнчлэн устгах, гол хос хайх зэрэг дэмжлэг хос нэмж үйл ажиллагаа хос хадгалах боломжийг олгодог нь хийсвэр харах болно:
- ол (гол).
- INSERT (үнэ цэнэ, гол).
- Зайлуулах (гол).
Энэ нь ассоциатив массив дахь ижил төстэй товчлуур бүхий хоёр хос аварч чадахгүй гэж үздэг байна. K + В.В. нь хоёр дахь утга нь гол к холбоотой юм. Ийм массивын янз бүрийн шийдлүүдтэй дээрх үйл ажиллагаа нь Семантик, энд өөр өөр байж болно.
Тиймээс олох үйл ажиллагаа (гол) утга нь тухайн түлхүүрээр, офлайн холбоотой гэсэн үг, утга өгөгдсөн түлхүүр, эсвэл тодорхой обьект ын Ардчиллын холбоотой буцаана. Нөгөө хоёр арга хэмжээ (үйл ажиллагаа амжилттай болсон эсэх талаар мэдээлэл бусад) эргэж ирэхгүй байна.
Ер нь, интерфэйс, ассоциатив массив нь энгийн массив гэж үзэж байна, индексүүд бүхэл тоо боловч бусад төрөл, утга нь зөвхөн хэрэглэж болно гэж үүгээр хувьд - Жишээ нь, шугам.
Дашрамд ийм массивын дэмжлэг болох PHP, Perl, Ruby, Python, TCL, Javascript болон бусад олон өндөр түвшний програмчлалын хэл байдаг гэж үздэг. ассоциатив массивын хамтран ажиллах ямар ч барьсан хэрэгсэл байдаг хэлнүүдийн хувьд номын сангийн хэлбэрээр realizations нь асар их тоог бий болгосон байна.
нь ассоциатив массивын нэг жишээ нь телефон утасны санд болж чадна. Энэ биелэл нь үнэ цэнэ "F. тогтоосон байна IO + E ", болон гол - утасны дугаар. Нэг утасны дугаар нэг мастер юм, гэхдээ нэг хүн олон тооны эзэмших болно.
холбогдох өргөтгөл
Энэ нь хамгийн сайн мэдэх өргөтгөлүүд дараах гэдгийг тэмдэглэх нь зүйтэй:
- Тус бүр - «алхах» Бүх дээр хос авардаг.
- CLEAR - Бүх оруулгуудыг устгадаг.
- MIN - хамгийн гол үнэ цэнэ нь хос олохын тулд.
- MAX - хамгийн гол үнэ цэнэ нь хос олохын тулд.
Сүүлийн хоёр тохиолдолд та харьцуулалт нөлөө заасан товчлуурууд дээр хэрэгтэй.
ассоциатив массивын-ийн хэрэгжилт
ассоциатив массив нь олон янзын шийдлүүд байдаг. хамгийн нийтлэг шийдэл нь бүрэлдэхүүн хос (утга нь гол) нь энгийн массив дээр суурилсан байж болох юм. хайлт чиг хурдасгахын тулд та гол олох замаар массивын бүрэлдэхүүн зохион байгуулах, ашиглах хэрэгжүүлэх болно хоёртын хайлт. Гэхдээ энэ нь шинэ дээд амжилт боох хоосон нүдэнд үзэгдэж массив бүрэлдэхүүн хэсэг "түлхэж" хэрэгтэй болно гэж шинэ хос нэмж шаардагдах хугацаа хэмжээг нэмэгдүүлж болно.
өөр өөр хайлтын модны дээр суурилсан хамгийн алдартай хэрэгжүүлэх. Жишээ нь, ердийн уншлагын танхим STL C ++ хэлний Trailers зураг, хар, зандан үндсэн дээр хэрэгжүүлж байна. Ruby онд загвар, TCL, Python хэш хүснэгтийн нэг төрлийг ашигладаг. бусад хэрэгжилтийн байдаг.
Ер нь, хэрэгжилт бүр өөрийн давуу болон сул талтай. Одоогийн тоо нэрлэсэн аварч - Энэ нь гурван үйл ажиллагаа нь дунджаар биелүүлсэн гэж, болон (нэвтэрч N) тухай нарийн ялгаанаас үүссэн төвөгтэй хамгийн муу үед, хаана N нь чухал юм. хамтарсан хайлт мод (хар, улаан мод оролцуулан), энэ нь нөхцөл байдал сэтгэл хангалуун байна.
Энэ нь хэш хүснэгтийн дээр тулгуурлан хэрэгжүүлж байгаа, дундаж хугацаа D (1), хайлтын модны дээр үндэслэн үйл ажиллагаанд илүү сайн байдаг гэж тодорхойлсон байдаг гэж мэдэгдэж байна. хамгийн муу тохиолдолд INSERT арга хэмжээ цаг хугацаа, зэрэг O (N) тэмдэглэсэн: Мэдээж хэрэг, энэ нь тусдаа үйл ажиллагаа нь өндөр хурдны гүйцэтгэлийг баталгаа биш юм. INSERT үйл явц үүрэг харьцаа хамгийн өндөр цэг нь хүрэхэд, болон хэш хүснэгтийн индексийг шинэчлэх шаардлага гарч байна, энэ нь удаан хугацааны турш гүйцэтгэсэн байна.
Дашрамд хэлэхэд, эдгээр тайланг энэ үндсэн дээр энэ нь хурдацтай нэмэлт арга хэмжээ авах MAX, Min гүйцэтгэх боломжгүй байна гэж муу тусдаг, бүх жингийн буурах дарааллаар, эсвэл түлхүүрүүдийг өсөхөөр дахь хос авардаг хайх алгоритм.
Similar articles
Trending Now