JavaScript-г хэрэглээрэй. JavaScript дээрх Масиви

Стек нь өгөгдөлд өөрчлөлтийн түүх, өөрчлөлтийн утгыг нэмэх боломжийг олгодог. Эдгээр алгоритмуудын тайлбар нь програмчлалын үндэс болдог. Стек нь функцүүдийн хооронд хяналтыг шилжүүлэх, рекурсийг зохион байгуулах, параметрүүд рүү илгээх үндэс суурь болдог. Push() болон pop() массивын нэмэлт аргуудын JavaScript-ийн синтакс ба семантик нь орон зайг удирдах, цаг хугацааны хүчин зүйлийг өөрчлөх боломжийг олгодог. Хулганы хөтчийн онцлог, түүний логик нь тухайн үеийн албан тушаалтны чадварыг гайхшруулах боломжийг танд олгоно.

Өгөгдлийн массив ба түүнийг үүсгэх логик

Өөрчлөлтийг л тайлбарла. Өөрчлөгдөж болох массивыг бий болгоход хэцүү байдаг. Використын тайлбарласнаар алгоритм нь хөдөлгөөнгүй биш, энгийн ажил юм. Өгөгдөлтэй сонгодог ажил:

  • өөрчлөлтийг дүрслэх (бүтээх);
  • утгыг оноох;
  • утгыг өөрчлөх;
  • өөрчлөлтийг арилгах.

Push() болон pop() функцууд нь өөрчлөлтийн мөн чанарыг өөрчлөх, тэдгээрийг орлуулах боломжийг танд олгоно. Стекийн санаа нь "үндэстэн" болсноос хойш өөрчлөгдөөгүй боловч JS-ийн хөтчийн онцлог, одоогийн програмчлалын үзэл баримтлал нь цаг хугацааны хүчин зүйлийг нэгтгэж, динамик өгөх боломжийг олгодог.

Функц "утга" - массивын төгсгөлд нэмэх функц нь массивын үлдсэн элементийг нэмэх үед түлхэх/поп контекст дахь нэмэх элементийг устгах үед өмнөх элемент рүү шилжинэ элемент, үлдсэн элемент нь нэмэх үйлдлүүдийн үр дүн юм.

JavaScript дахь стекийн уламжлалт тайлбар болох ялтсуудын стек нь шинэ утгыг олж авдаг. Та дахиж хэзээ ч өөрчлөгдөхгүй байх болтугай - энэ бол асар том зүйл. Массив нь хувьсагчдын цуглуулга боловч хэрэв та хувьсагчийг массив байдлаар харвал түүний утгын өөрчлөлтийн динамикийг бас ажиглаж болно.

Рок утгын ард

Стекийн мөн чанар нь үлдсэн хэсэг рүү, эхнийх рүүгээ ирэх явдал юм. Ач холбогдол бүхий байрлалыг өөрчлөх боломжгүй юм тушаал өгсөн. Энэ дүрмийг хатуу дагаж мөрдөж, бүх массивын утгыг нэг өөрчлөлт гэж үзвэл нэг цагийн өөрчлөлтийн утгын өөрчлөлтийн динамикийг тодорхойлох боломжтой.

Энэ аппликешнд JS array.push(...)-ын нэмсэн утга нь үйлдлийн нэг дараалал, JS массив pop()-ын олж авсан утга нь өөр дараалал юм. Хоёр сонголт нь бие биенээ үгүйсгэдэг. Энэ нь идэвхтэй элемент нь зөвхөн цаг хугацааны явцад биш, харин түүний өөрчлөлтийн логикийн дагуу үнэ цэнээ өөрчилдөг гэсэн үг юм.

Рекурс ба үнэ цэнийн динамик

Функцийг өөртөө дуудаж, утгыг нь аюулгүйгээр алдаж болох тохиолдолд энэ нь цэвэр функц юм. Энгийн жишээ бол хүснэгт юм. Хүснэгт нь өөр хүснэгттэй байж болно. Мөн арьсны ширээ нь эгнээ, эгнээ, дунд хэсэг юм. Арьс ширний төвийг ширээн дээр тавьж болно. Дараалсан хэд хэдэн дунд хэсгийг нэг хайрцагт нэгтгэж болох бөгөөд энэ нь хүснэгт агуулж болно. Бизнесийн хүснэгт нь хоёр ба түүнээс дээш ширээтэй бизнестэй байж болно.

Дээр дурдсаныг програмчлалын сонгодог хэв маягт хэрэгжүүлэх нь бараг боломжгүй боловч рекурсив хэв маягт энэ нь энгийн зүйл юм. Учир нь хүснэгттэй ажиллах алгоритмын функциональ байдал нь үүнийг ямар ч зүйлийн дунд хэрэгжүүлэх боломжийг олгодог - JS array push. JavaScript-д энэ "анхаарал төвлөрөл" онцгой чухал юм. Ширээнүүд нь бүрэн замбараагүй байна. Хуудасны мод (DOM) нь хуудсан дээрх бүх робот юм.

DOM элементүүд дээр (хуудасны шошго) хаягуудыг өлгөх. Нэг сонголт, хэрэв ийм дээж авагчийг зөвхөн нэг удаа асуувал, хэрэв та өөрөөсөө олон удаа асууж чадвал огт өөр сонголт юм. Нэг цагт хуудасны динамик нь хуудасны бүх элементийн бүх дээжээс гарч ирдэг.

Push/pop болон recursion - энд хуудасны ажлын логикийн талаархи өөр нэг мэдэгдэл байна: бүх зүйл одоогийн нөхцөл байдлын дагуу өөрчлөгддөг бөгөөд iduvacha-ийн дараагийн боловсруулалтыг харгалзан дараагийн шатанд програмчлагдсангүй.

Арга түлхэх()массивын төгсгөлд нэг буюу хэд хэдэн элемент нэмж, массивын шинэ нэмэлтийг эргүүлнэ.

Синтакс

arr .push(элемент1 [, ...[, элементN ]])

параметрүүд

бүрэлдэхүүн НМассивын төгсгөлд нэмэх элементүүд.

Эргэж байгаа зүйлийн утга учир

var хүнсний ногоо = ["парснип", "төмс"]; var moreVegs = ["селөдерей", "манжин"]; // Хоёрдахь массивыг эхний хэсэгт нэгтгэх // Хүнсний ногоотой тэнцүү.push("селөдерей", "манжин"); Array.prototype.push.apply(хүнсний ногоо, илүү олон ногоо); console.log(хүнсний ногоо); // ["парснип", "төмс", "селөдерей", "манжин"]

Vikoristannya ob'ekt u vyglyadі масиву

Урьдчилан хэлсэнчлэн, бүдүүлэг, бардам байдлаар түлхэж, бид өөрсдийн эрх ашгийг хамгаалж чадна. Array.prototype.push нь энэ жишээнээс харахад объекттой зүгээр л гайхамшигтайгаар ажиллаж чаддаг. Анхаарна уу: бид объектын цуглуулгыг хадгалах массив үүсгэдэггүй. Үүний оронд бид цуглуулгаа объект дээр хадгалаад Array.prototype.push гэж дуудаж, массивыг зохицуулж чадна гэж бодоод аргыг хуурч байгаа бөгөөд энэ нь ердөө л JavaScript нь I объектын контекстийг оруулах боломжийг бидэнд олгодог учраас эелдэг хандаарай. надад .

Var obj = ( урт: 0, addElem: function addElem(elem) ( // obj.length нь автоматаар нэмэгддэг // элемент нэмэгдэх бүрд. .push.call(this, elem); ) ); // Зөвхөн дүрслэхийн тулд зарим хоосон объектуудыг оруулъя obj.addElem()); // → 2

Хэдийгээр obj нь массив биш боловч түлхэх арга нь бодит массивын баруун талд байгаа obj-ийн уртын утгыг амжилттай нэмэгдүүлдэг болохыг анхаарна уу.

Онцлог шинж чанарууд

Хөтөч төөрөгдөл

Онцлог байдалAndroid вэб харагдах байдалAndroid-д зориулсан ChromeEdge mobileAndroid-д зориулсан FirefoxҮйл ажиллагаа Android систем iOS SafariSamsung онлайн дэлгүүр

Масиви

Масив- энэ үнэт зүйлсийн цуглуулгыг захиалсан. Массив дахь утгуудыг элементүүд гэж нэрлэдэг бөгөөд арьсны элемент нь массив дахь тоон байрлалаар тодорхойлогддог бөгөөд үүнийг индекс гэж нэрлэдэг. Масиви миний JavaScriptє untyped: массивын элементүүд ямар ч төрлийн байж болох ба нэг массивын өөр өөр элементүүд нь өөр төрлийн байж болно. Массивын элементүүдийг объект эсвэл бусад массиваар дүүргэх боломжтой бөгөөд энэ нь объектын массив, массивын массив гэх мэт нарийн төвөгтэй өгөгдлийн бүтцийг бий болгох боломжийг олгодог.

JavaScript дахь янз бүрийн массивын индексүүд тэгээс эхэлдэг бөгөөд тэдгээрт зориулж 32 бит бүхэл тоонуудыг тооцдог - массивын эхний элемент нь 0 индекстэй байна. JavaScript массивууд нь динамик: шаардлагатай бол томрох, өөрчлөх боломжтой; Массивыг үүсгэхийн тулд тогтмол хэмжээг зарлаж, хэмжээг нь өөрчлөхийн тулд санах ойг дахин хуваарилах шаардлагагүй.

JavaScript дахь массивууд нь объектуудын тусгай хэлбэр бөгөөд массивын индексүүд нь бүхэл тоогоор ашиглагддаг эрх мэдэлтнүүдийн нэрсээс арай илүү утгатай.

Массив үүсгэх

Нэмэлт literal ашиглан массив үүсгэх нь хамгийн хялбар бөгөөд энэ нь массивын элементүүдийн дөрвөлжин гарт хуваагдсан энгийн жагсаалт юм. Массив литерал дахь утгууд нь тогтмол байх албагүй - гэхдээ объектын литерал зэрэг ямар ч илэрхийлэл байж болно:

Var хоосон =; // Хоосон массив var numbers =; // Таван тоон элемент бүхий массив var misc = [ 1.1, үнэн, "a", ]; // 3 элемент янз бүрийн төрөл+ эцсийн комын суурь = 1024; var хүснэгт =; // Өөрчлөлттэй массив var arrObj = [,]; // Объектуудыг нэгтгэхийн тулд дунд хэсэгт 2 массив

Массивын шууд синтакс нь нэмэлт эцсийн комыг оруулах боломжийг танд олгоно. Шууд утга [,] нь гурваас илүү хоёр элемент бүхий массивыг илэрхийлнэ.

Массив үүсгэх өөр нэг арга бол бүтээгчийн товшилт юм. Массив(). Та бүтээгчийг гурван өөр аргаар ашиглаж болно:

    Аргументгүйгээр бүтээгч дээр дарна уу:

    Var arr = шинэ массив();

    Энэ тохиолдолд шууд утгатай тэнцэх хоосон масс үүсэх болно.

    Довжин массивын анхны тоон аргумент бүхий Викликати үүсгэгч:

    Var arr = шинэ массив(10);

    Энд томилогдсон довжингийн хоосон массив бий болно. Array() бүтээгчийн энэ хэлбэрийг дараа нь массивын элементийн тоо тодорхой болох тул санах ойг урьдчилан хуваарилахад ашиглаж болно. Массив дээр ижил утгууд хадгалагдаагүй болохыг анхаарна уу.

    Массив дахь эхний хоёр буюу түүнээс дээш элементийн утгыг эсвэл үүсгэгчийн вики дэх тоон бус нэг элементийн утгыг тодорхой оруулна уу:

    Var arr = Шинэ массив (5, 4, 3, 2, 1, "туршилт");

    Энд бүтээгчийн аргументууд нь шинэ массивын элементүүдийн утга болно. Массивын литералыг ашиглах нь Array() бүтээгчийг ашиглахаас бараг үргэлж хялбар байдаг.

Массивын элементүүдийг унших, бичих

Массивын элементүүдэд хандах нь операторын тусламжийг шаарддаг. Нумын зүүн талаас массив руу илгээсэн зурвас байна. Гарны дунд хэсэгт үл мэдэгдэх цэг рүү эргэлддэг том нугалаа байдаг. Энэхүү синтакс нь массив элементийн утгыг унших, бичихэд тохиромжтой. Гэсэн хэдий ч бүх JavaScript зааврыг зөвшөөрдөг:

// Нэг элемент бүхий массив үүсгэх var arr = ["world"]; // Унших элемент 0 var утга = arr; // 1-р элементийн утгыг бичнэ arr = 3.14; // 2-р элементийн утгыг бичнэ i = 2; arr[i] = 3; // 3-р элементийн утгыг бичих arr = "сайн уу" ; // 0 ба 2-р элементүүдийг унших, 3-р утгыг бичих arr] = arr;

Массивууд нь төрөл бүрийн объектууд гэдгийг сануулъя. Массивын элементүүдэд нэвтрэхэд ашигладаг дөрвөлжин гарууд нь объектын эрх мэдэлтнүүдэд нэвтрэхэд ашигладаг дөрвөлжин гартай адил үйлчилдэг. JavaScript орчуулагч нь тоон индекс дэх оруулгуудыг мөр болгон хувиргадаг - индекс 1 нь "1" мөр болж, дараа нь мөрүүдийг эрх бүхий байгууллагын нэр болгон хувиргадаг.

Мөр дэх дахин боловсруулсан тоон индексүүдийн хувьд онцгой зүйл байхгүй: та ижил төстэй объектуудтай ажиллах боломжтой:

Var obj = (); // Энгийн объект үүсгэх obj = "нэг"; // Индекс його бүхэл тоо

Массивуудын онцлог нь сөрөг бус бүхэл тоо болох санамсаргүй нэрсийн дагуу массив нь чадлын утгыг автоматаар тооцдогт оршино. урт. Жишээлбэл, бүх зүйл нэг элементээс arr массиваар үүсгэгдсэн. Дараа нь 1, 2, 3 индекс бүхий элементүүдэд утгыг өгсөн. Эдгээр үйлдлүүдийн үр дүнд массивын уртын чадлын утга өөрчлөгдөж 4 болсон.

Дараа нь объектуудын эрх бүхий байгууллагын нэрийн дор массив дахь индексүүдийг тодорхой зааж өгнө. Бүх индексүүд эрх мэдэлтнүүдийн нэрээр нэрлэгдсэн бөгөөд зарим эрх мэдэлтнүүд бүхэл тоо болон индексээр илэрхийлэгдсэн нэртэй байдаг. Бүх массив нь объект бөгөөд та тэдэнд ямар ч нэр өгөх боломжтой. Гэсэн хэдий ч, хэрэв та массив дахь индекс гэх мэт эрх мэдэлтнүүдтэй харьцах юм бол массивууд үүнд хариу үйлдэл үзүүлж, шаардлагатай бол эрх мэдлийн уртын утгыг өөрчилдөг.

Массивын индекс болгон сөрөг болон бүхэл бус тоог ашиглахыг зөвшөөрнө гэдгийг анхаарна уу. Энэ тохиолдолд тоонуудыг эрх мэдэлтнүүдийн нэр шиг эгнээ болгон хувиргадаг.

Массивт элемент нэмэх, сонгох

Массивт элемент нэмэх хамгийн энгийн арга бол шинэ индексүүдэд утга оноох явдал гэдгийг бид аль хэдийн мэдсэн. Массивын төгсгөлд нэг буюу хэд хэдэн элемент нэмэхийн тулд та мөн аргыг ашиглаж болно түлхэх():

Var arr =; // Хоосон массив үүсгэх arr.push("тэг"); // Утга нэмэх жишээ нь arr.push("one",2); //Дахин хоёр утгыг нэмнэ

Та мөн arr элемент дээр утгыг нэмж массивын төгсгөлд элемент нэмж болно. Массивын хэсэг дээр элемент оруулахын тулд та Викори аргыг ашиглаж болно unshift()Энэ тохиолдолд массив дахь анхны элементүүд нь илүү өндөр индекстэй байрлал руу шилждэг.

Та массивын элементүүдийг устгах операторыг объектын үндсэн хүч болгон устгаж болно.

Var arr =; арр устгах; 2 in arr; // худал, массивын 2-р индекст arr.length оноогдоогүй; // 3: устгах оператор нь уртын массивын хүчийг өөрчлөхгүй

Үзэгдэх элемент нь тухайн элементэд өгөгдсөн тодорхойгүй утгыг өгсөн гэж таамаглаж байна (хэдийгээр энэ нь харагдах болно). Устгах операторыг массивын элементэд хэрэглэх нь уртын эрх мэдлийн утгыг өөрчлөхгүй бөгөөд устгасан элементийн дараа хоосон зүйлсийг бөглөх нэмэлт индекс бүхий элементүүдийг доош түлхэхгүй гэдгийг анхаарна уу.

Нэмж дурдахад массивын төгсгөлд байгаа элементүүдийг уртад шинэ чадлын утгыг нэмэх замаар устгах боломжтой. Масиви хөдөлмөрийн арга поп()(Push() аргын өмнөх) нь массивын доод хэсгийг 1-ээр өөрчилж, алсын элементийн утгыг эргүүлдэг. Ижил арга shift()(unshift() аргын өмнөх) нь массив дээрх элементийг устгадаг. Устгах операторыг орлуулахын тулд shift() арга нь бүх элементүүдийг одоогийн индексийнхээ доор байгаа байрлал хүртэл устгадаг.

Олоод үзээрэй, баялаг арга бий залгах(), энэ нь массивын элементүүдийг оруулах, устгах, солих боломжийг олгодог. Энэ нь тэжээлийн уртын утгыг өөрчилж, шаардлагатай бол бага эсвэл өндөр индекс бүхий массивын элементүүдийг оноож өгдөг. Жилийн туршид бид эдгээр бүх аргуудыг нарийвчлан ангилах болно.

Дэлхийн баялаг массивууд

JavaScript нь "лавлагаа" баялаг массивуудыг дэмждэггүй, харин массив доторх массив гэж буруу ангилах боломжийг олгодог. Массивын массив дахь өгөгдлийн элементэд хандахын тулд давхар операторыг ашиглахад хангалттай.

Жишээлбэл, матрицыг тоонуудын массив гэж бодъё. Элемент матриц [x] нь тооны хэлхээ юм. Массивын хамгийн их тоонд хандахын тулд та [x][y] матрицыг ашиглаж болно. Доод зорилго тавь тодорхой өгзөг, де хоёр ертөнцийн массивВикипедиа үржүүлэх хүснэгт болгон:

// Баян массив үүсгэх var table = new Array (10); // Хүснэгт нь (var i = 0; i) 10 мөртэй

Массив ангийн арга

ECMAScript 3 стандарт нь Array.prototype нь ямар ч массивын аргад ашиглах боломжтой массивтай ажиллах гарын авлагын функцгүй гэсэн үг юм. Эдгээр аргуудыг ирээдүйн хүүхдүүдэд танилцуулах болно.

join() арга

Array.join() арга нь массивын бүх элементүүдийг мөр болгон хувиргаж, тэдгээрийг нэгтгэж, хамгийн өндөр байгаа мөрийг эргүүлнэ. Зайлшгүй аргумент дээр та мөрийг үр дүнд нь мөрийн элементүүдийг бэхжүүлэхэд ашиглах арга руу дамжуулж болно. Хэрэв хуваах мөрийг заагаагүй бол комыг зааж өгнө. Жишээлбэл, тэргүүлэгч фрагмент нь "1,2,3" гэсэн мөрийг үүсгэдэг:

Var arr =; arr.join(); // "1,2,3" arr.join("-"); // "1-2-3"

урвуу () арга

Array.reverse() арга нь массив дахь элементүүдийг дамжуулах дарааллыг эргүүлж, массивын дарааллыг буцаана. Сүлжээ нь гаралтын массив дээр нэмэгддэг. Энэ арга нь дахин эрэмблэгдсэн элементүүдээс шинэ массив үүсгэхгүй, харин одоо байгаа массиваас дахин эрэмбэлдэг. Жишээ нь, урвуу() ба join() аргуудаар зохион бүтээсэн дараагийн фрагмент нь "3,2,1" гэсэн мөрийг үүсгэнэ.

Var arr =; arr.reverse().join(); // "3,2,1"

sort() арга

Array.sort() арга нь гаралтын массив дахь элементүүдийг эрэмбэлж, эрэмбэлэгдсэн массивыг эргүүлдэг. Аргументгүйгээр sort() аргыг дуудах үед эрэмбэлэх ажлыг цагаан толгойн дарааллаар байрлуулна (элементүүдийг зэрэгцүүлэхийн тулд тэдгээрийг хурдан мөр болгон хувиргах шаардлагагүй). Чухал бус элементүүдийг массивын төгсгөлд шилжүүлдэг.

Цагаан толгойн үсгийн дарааллаас бусад ямар ч дарааллаар эрэмбэлэхийн тулд sort() функцийг аргумент болгон sort() аргад шилжүүлж болно. Энэ функц нь эрэмбэлэгдсэн жагсаалтын хоёр аргументаас аль нь эхэлж болохыг тохируулдаг. Эхний аргументыг нөгөөд шилжүүлж болох тул тэгшитгэх функц нь сөрөг тоог эргүүлж болно. Хэрэв эхний аргумент нь эрэмбэлэгдсэн массив дахь нөгөө аргументыг дагах үүрэгтэй бол функц нь тэгээс их тоог эргүүлэх үүрэгтэй. Хэрэв хоёр утга тэнцүү бол (тэдгээрийн үүсэх дараалал чухал биш) тэнцүүлэх функц нь 0-ийг эргүүлэх ёстой:

Var arr =; arr.sort(); // Цагаан толгойн дараалал: 1111, 222, 33, 4 arr.sort(function(a,b) ( // Тоон дараалал: 4, 33, 222, 1111 буцах a-b; // Эрэмбэлэхээс хамаарч 0 утгыг эргүүлнэ // a i b)); // Урвуу чиглэлд, томоос хамгийн бага arr.sort (функц (a, b) (буцах b-a));

Хүндэтгэлийг сэргээхийн тулд энэ фрагментийн нэргүй функцийг гараар vikorize хийх нь хичнээн амархан вэ. Энд зөвхөн тэгшитгэх функцийг ашигладаг тул нэр өгөх шаардлагагүй.

concat() арга

Array.concat() нь concat() аргын дууддаг гаралтын массивын элементүүд болон concat() арга руу дамжуулсан бүх аргументуудын утгыг агуулсан шинэ массив үүсгэж эргүүлнэ. Эдгээр аргумент бүр нь өөрөө массив тул түүний элементүүдийг эргүүлж буй массив дээр нэмнэ. Гэхдээ энэ нь массивыг массиваас нэг хэмжээст массив руу рекурсив хувиргах боломжгүй гэсэн үг юм. concat() арга нь гаралтын массивыг өөрчилдөггүй. Хэд хэдэн өгзөг нь доод тал руу чиглэсэн байна:

Var arr =; arr.concat(4, 5); // Эргээд arr.concat(); // Rotate arr.concat(,) // Rotate arr.concat(4, ]) // Rotate ]

slice() арга

Array.slice() арга нь фрагментийг эргүүлэх эсвэл заасан массивыг нэмнэ. Аргын хоёр аргумент нь эргэлдэж буй фрагментийн толгой ба төгсгөлийг заана. Эргэдэг массив нь эхний аргументад дугаарыг нь зааж өгсөн элементийг агуулж байгаа ба дараачийн бүх элементүүдийг бусад аргументад заасан элемент хүртэл (эсвэл оруулахгүй) агуулдаг.

Хэрэв зөвхөн нэг аргументыг зааж өгсөн бол эргүүлэх массив нь бүх элементүүдийг cob байрлалаас массивын төгсгөл хүртэл байрлуулна. Хэрэв аргументуудын аль нэг нь сөрөг утгатай бол массивын төгсгөлд байгаа элементийн дугаарыг заана. Тиймээс аргумент -1 нь массивын үлдсэн элементийг, харин -3 аргумент нь массивын гурав дахь элементийг илэрхийлнэ. Өгзөгний тэнхлэг:

Var arr =; arr.slice(0,3); // arr.slice-г эргүүлэх (3); // arr.slice-г эргүүлэх (1,-1); // Rotate arr.slice(-3,-2); // Эргэх

splice() арга

Array.splice() нь массив руу элемент нэмэх, устгах бүх нийтийн арга юм. Slice() ба concat() аргуудаас ялгаатай нь splice() арга нь дуудлага хийсэн аль ч тохиолдолд гаралтын массивыг өөрчилдөг. splice() болон slice() аргууд нь ижил нэртэй боловч өөр өөр үйлдлүүдийг нэгтгэдэггүй гэдгийг анхаарна уу.

Splice() арга нь массиваас элементүүдийг устгах, шинэ элемент оруулах эсвэл зөрчилтэй үйлдлүүдийг нэг дор цуцлах боломжтой. Шаардлагатай үед массивын элементүүдийг шилжүүлдэг бөгөөд ингэснээр оруулах эсвэл устгасны дараа тасралтгүй дараалал үүсдэг.

Splice() аргын эхний аргумент нь массив дахь оруулга эхлэх байрлалыг зааж өгнө. Өөр нэг аргумент нь массиваас устгаж болох элементүүдийн тоог заана. Орхигдлын өөр нэг аргументын хувьд массивын бүх элементүүд төгсгөлд хуваарилагдсан массиваас хасагдана. Splice() арга нь устгасан элементийн массив эсвэл (хэрэв ямар ч элемент хасагдаагүй бол) хоосон массивыг эргүүлдэг.

Splice() аргын эхний хоёр аргумент нь дэлгэцэнд ашиглагдаж буй массивын элементүүдийг заана. Эдгээр аргументуудын дараа эхний аргументад заасан байрлалаас эхлэн массив руу оруулах элементүүдийг зааж өгөх хэдэн ч нэмэлт аргумент байж болно.

Var arr =; arr.splice(4); // Эргэх, arr = arr.splice(1,2); // Эргэх, arr = arr.splice(1,1); // эргэх; arr = arr =; arr.splice(2,0, "a", "b"); // эргэх; arr =

Push() ба pop() аргууд

Push() болон pop() аргууд нь стек гэх мэт массивуудтай ажиллах боломжийг олгодог. Push() арга нь массивын төгсгөлд нэг буюу хэд хэдэн шинэ элемент нэмж, шинэ элементийг эргүүлнэ. pop() арга нь шинэ юм эргэлтийн үйл ажиллагаа- массивын үлдсэн элементийг устгаж, массивын сүүлчийн элементийг өөрчилж, утгуудыг түүнээс цааш эргүүлнэ. Эдгээр аргууд нь гаралтын массивыг өөрчилдөг бөгөөд тэдгээр нь түүний өөрчлөгдсөн хуулбарыг үүсгэдэггүй гэдгийг анхаарна уу.

unshift() болон shift() аргууд

unshift() болон shift() аргууд нь массивын төгсгөлд биш харин эхэнд элемент оруулах, устгадаг тул push() болон pop()-той төстэй. unshift() арга нь зай гаргахын тулд хоёр том индекс дэх бусад элементүүдийг орлуулж, массивын дээд хэсэгт элемент эсвэл элементүүдийг нэмж, массивын шинэ доод хэсгийг эргүүлнэ. Shift() арга нь массивын эхний элементийг устгаж, эргүүлж, бүх зэргэлдээх элементүүдийг массивын эхэнд нэмсэн зайг эзлэхийн тулд нэг байрлалаар доош шилжүүлдэг.

The түлхэх()арга нь массивын төгсгөлд нэг буюу хэд хэдэн элемент нэмж, шинэ массив үүсгэдэг.

Энэхүү интерактив жишээний эх сурвалжийг GitHub репозиторт хадгалсан. Таны мэдэж байгаагаар төслийн програмуудыг өргөжүүлэхийн тулд https://github.com/mdn/interactive-examples клоныг давтаж, нэмэлт оруулгуудыг сонгоно уу.

Синтакс

arr .push(элемент1 [, ...[, элементN ]])

Параметрүүд

бүрэлдэхүүн НМассивын төгсгөлд нэмэх элемент(үүд).

Буцах утга

Жишээ

Массивт элемент нэмэх

Дараагийн кодууд нь хоёр элементийг нэгтгэсэн спорт массив үүсгэж, дараа нь хоёр элементийг дараагийнх руу хавсаргана. Нийт хувьсагч нь массивын шинэ уртыг агуулна.

Спортыг = ["хөл бөмбөг", "бейсбол"] let total = sports.push("хөл бөмбөг", "усанд сэлэх") console.log(спорт) // ["хөл бөмбөг", "бейсбол", "хөл бөмбөг", "усанд сэлэх" " "] console.log(нийт) // 4

Хоёр массивыг нэгтгэж байна

Энэ жишээ нь хоёр дахь массивын бүх элементүүдийг түлхэхэд apply()-г ашигладаг.

Хий үгүйХэрэв хоёрдахь массив (жишээнд илүү олон тооны Vegs) байвал энэ аргыг ашиглана уу, учир нь нэг функцийн авч болох параметрийн хамгийн их тоо практикт хязгаарлагдмал байдаг. Илүү дэлгэрэнгүйг application()-г үзнэ үү.

Let хүнсний ногоо = ["pasnip", "patoto"] let moreVegs = ["селөдерей", "beetroot"] // Хоёр дахь массивыг нэгдүгээрт нэгтгэнэ // Хүнсний ногоо.push("selery", "beetroot") массивтай тэнцүү. prototype.push.apply(ногоо, moreVegs) console.log(хүнсний ногоо) // ["яншуй", "төмс", "селөдерей", "манжин"]

Массив маягийн объекттой холбоотой нэмэлт тусламж

Дээр дурьдсанчлан, түлхэх нь зориудаар ерөнхий шинж чанартай бөгөөд бидний өмнө давуу талтай хүмүүсийн давуу талыг ашиглах боломжтой. Array.prototype.push нь хувилбарыг харуулж байгаа тул объект дээр зүгээр л боловсруулж болно.

Бид объектын цуглуулгыг хадгалах массив үүсгэж чадахгүй байгаа хүмүүст хүндэтгэлтэй хандаарай. JavaScript нь бидний хүссэнээр гүйцэтгэх контекстийг бий болгох боломжийг бидэнд олгож байгаагийн ачаар зүгээр л ажилладаг.

obj = ( урт: 0, addElem: function addElem(elem) ( // obj.length нь автоматаар нэмэгддэг // элемент нэмэгдэх бүрд. .push.call(this, elem) ) ) // Хоосон зүйл нэмье. obj.addElem(()) дүрслэхийн тулд.

Массиваар баялаг биш хүмүүст анхаарлаа хандуулахын тулд сумны арга нь obj "байнга хүчээр амжилттай ургадаг, учир нь бид зөвхөн одоогийн массиваар бичих болно.

Үзүүлэлтүүд

Тодорхойлолт Статус Сэтгэгдэл
ECMAScript 3-р хэвлэл (ECMA-262) Стандарт Анхны тодорхойлолт. JavaScript 1.2-г хэрэгжүүлсэн.
ECMAScript 5.1 (ECMA-262)
Стандарт
ECMAScript 2015 (6-р хэвлэл, ECMA-262)
Энэ тодорхойлолтод "Array.prototype.push" гэсэн утгатай.
Стандарт
ECMAScript-н хамгийн сүүлийн үеийн төсөл (ECMA-262)
Энэ тодорхойлолтод "Array.prototype.push" гэсэн утгатай.
Ноорог

Хөтөчийн нийцтэй байдал

Энэ хуудсан дээрх хүснэгтийн нягтрал нь бүтэцлэгдсэн өгөгдлөөр үүсгэгддэг. Нэгэнт мэдсэн бол өөрийн өгөгдлийн талаар мэдэхийн тулд https://github.com/mdn/browser-compat-data вэб сайт дээр товшоод бидэнд татах хүсэлт илгээнэ үү.

GitHub дээрх нийцтэй байдлын өгөгдлийг шинэчлэх

Ширээний компьютерГар утасСервер
ChromeИрмэгFirefoxInternet ExplorerДуурьСафариAndroid вэб үзэхAndroid-д зориулсан ChromeAndroid-д зориулсан FirefoxAndroid-д зориулсан OperaiOS дээрх SafariSamsung интернетNode.js
түлхэхChrome бүрэн дэмжлэг 1Edge Бүрэн дэмжлэг 12Firefox-ийн бүрэн дэмжлэг 1IE Бүрэн дэмжлэг 5.5Opera Бүрэн дэмжлэг ТиймSafari бүрэн дэмжлэг 1WebView Android Бүрэн дэмжлэг ТиймChrome Android Бүрэн дэмжлэг 18Firefox Android Бүрэн дэмжлэг 4Opera Android Бүрэн дэмжлэг ТиймSafari iOS Бүрэн дэмжлэг 1Samsung Интернет AndroidБүрэн дэмжлэг Тиймnodejs Бүрэн дэмжлэг Тийм

Энэ нийтлэлд бид тоон индекс бүхий стандарт JavaScript массивуудыг авч үзэх болно. Масиви дөрвөлжин зэвсгийн тусламжийн төлөө саналаа өгнө.

var fruits = ["Алим", "Улбар шар", "Илжиг"]

Элемент сонгохын тулд түүний индексийг дөрвөлжин гар дээр байрлуулна. Эхний индекс 0:

var fruits = ["Алим", "Улбар шар", "Илжиг"] дохиолол(жимс) дохиолол(жимс) дохиолол(жимс)

Мөн бид давхар JavaScript массивыг задлан шинжилж болно:

var fruits = ["Алим", "Улбар шар", "Илжиг"] дохиолол(жимс. урт)

Өө!

Бид хоёр жимс, илжиг бүхий массивыг бий болгосон. Одоо бид бүгдээс салах хэрэгтэй.

Поп ба түлхэх арга

JavaScript поп арга нь массив дахь элементийг харуулж, эргүүлдэг.

Хөлийн өгзөг дээр "Илжиг" массивыг хэрхэн нэхэж байгааг харуулж байна.

var fruits = ["Алим", "Улбар шар", "Илжиг"] alert("Би "+fruits.pop() харж байна) // Одоо бидэнд зөвхөн ["Apple","Orange"] alert("Одоо хэмжээ массивын : "+жимс.урт) // үзэгдлийн илжиг

Поп нь массивыг өөрөө өөрчилдөг гэдгийг анхаарна уу.

Попын аналог нь массив элемент нэмдэг түлхэх арга юм. Жишээлбэл, бид танд тоор өгөхөө мартсан байна:

  1. var fruits = ["Алим", "Улбар шар"] fruits.push("Тор"); // одоо бидэнд ["Алим", "Улбар шар", "Тор"] дохио байна("Үлдсэн элемент:"+жимс) Элементүүдтэй загварын массив үүсгэх "”, “Жазз”;
  2. Блюз Үнэ цэнэ нэмэх"«;
  3. Рокн ролл Утгын төгсгөлд бусад утгыг солино уу "Сонгодог Элементүүдтэй загварын массив үүсгэх "”, ”Утгын төгсгөлд бусад утгыг солино уу "”, ”Үнэ цэнэ нэмэх"“. Та массивыг оруулж болно: "
  4. " Кодыг ямар ч өдөр ашиглах боломжтой;

Массиваас үлдсэн утгуудыг аваад дохиогоор харуулна уу.

Шийдвэр

// 1 var styles = ["Jazz", "Bluez"] // 2 styles.push("Rock"n"Roll") // эсвэл: styles = "Rock"n"Roll" // 3 загвар = "Сонгодог // 4 анхааруулга(styles.pop())

Шилжүүлэх / шилжүүлэх арга Юуны өмнө хамгийн чухал массивыг бүхэл бүтэн элементүүдээс харж болно). Unshift арга нь JavaScript-д төгсгөлд нь массивын элемент нэмэх боломжийг олгодог:

var fruits = ["Алим", "Улбар шар"] var алим = fruits.shift() // одоо бид ["Улбар шар") дууссан байна fruits.unshift("Lemon") // одоо бид ["Нимбэг" , "Улбар шар"] дохиолол(жимс.урт) // 2

Би шилжүүлэх, солих нь хэд хэдэн элементтэй нэгэн зэрэг ажиллах боломжтой:

var fruits = ["Apple"] fruits.push("Улбар шар","Тор") fruits.unshift("Pineapple","Lemon") // одоо массив дараах байдалтай байна: ["Pineapple", "Lemon", "Алим", "Улбар шар", "Тор"]

Бие даасан ялагчийн танхим

Arr массивын утгыг дохиогоор харуулах кодыг бичнэ үү:

var arr = ["Чавга", "Улбар шар", "Илжиг", "Лууван", "JavaScript"]

Тайлбар: Хамгийн багааас дугаарыг хасах код хамгийн их утга(хамааруулсан) довтолгоо:

var rand = мин + Math.floor(Math.random()*(макс+1-мин))

Массиваас үлдсэн утгуудыг аваад дохиогоор харуулна уу.

Бид 0-ээс arr.length-1 (хамааруулсан) хүртэлх тоог хасах хэрэгтэй:

var arr = ["Чавга", "Улбар шар", "Илжиг", "Лууван", "JavaScript"] var rand = Math.floor(Math.random()*arr.length) alert(arr)

Массиваар эрэмбэлэх

JavaScript нь нэмэлт for циклийг ашиглан массив дээр давтагдана:

var fruits = ["Хан боргоцой", "Нимбэг", "Алим", "Жүрж", "Тор"] for(var i=0; i)

Бие даасан ялагчийн танхим

Өгөгдсөн массив дахь утгуудыг олохын тулд find(arr,value) функцийг үүсгээд индексийг эргүүлнэ үү эсвэл утга олдохгүй бол -1.

Жишээлбэл:

arr = ["туршилт", 2, 1.5, худал] олох(arr, "тест") // 0 олох(arr, 2) // 1 олох(arr, 1.5) // 2 олох(arr, 0) // -1

Массиваас үлдсэн утгуудыг аваад дохиогоор харуулна уу.

Илүү сайн шийдэл нь иймэрхүү харагдах болно:

функц олох(массив, утга) (​​for(var i=0; i

Энэ нь үнэн биш, учир нь == нь 0 ба худал хоёрын ялгаа гэсэн үг биш юм.

JavaScript массивтай ажиллахдаа хийх зөв зүйл бол === ашиглах явдал юм. Үүнээс гадна шинэ ES5 стандарт нь Array#indexOf функцийг нэвтрүүлсэн. Энэ тусламжтайгаар бид функцийг дараах байдлаар тодорхойлж болно.

функц олох(массив, утга) ( ​​хэрэв (массив.indexOf) буцах массив.indexOf(утга) for(var i=0; i)

indexOf арга гэж юу болохыг шалгахын тулд олох аргыг ашиглах нь илүү ухаалаг шийдэл байх болно.

Бие даасан ялагчийн танхим

Массив авч, arr-ын ард илүүдэл тоон утгуудыг байрлуулахын тулд шинэ массивыг эргүүлдэг filterNumeric(arr) функцийг үүсгэ.

Энэ хэрхэн ажилладаг тухай жишээ:

arr = ["a", 1, "b", 2]; arr = шүүлтүүрТоон(arr); // одоо arr =

Массиваас үлдсэн утгуудыг аваад дохиогоор харуулна уу.

Шийдэл нь массивыг давтаж, утгууд нь тоон шинж чанартай тул шинэ массив дээр нэмэх явдал юм.

нэгдэх ба хуваах

Энэ бол JavaScript массивыг эгнээ болгон хөрвүүлэх өөр нэг хурдан арга юм. Энэ зорилгоор нэгдэх аргыг ашигладаг.

Энэ нь олон тооны эгнээ, використа болон даалгавар тусгаарлагчийг нэгтгэдэг:

var fruits = ["Нимбэг", "Алим", "Жүрж", "Тор"]; var str = fruits.join(", "); дохио (str);

Тусламж авахын тулд гарцыг дагахад хялбар байдаг: хуваах:

var fruits = "Алим, жүрж, тоор"; var arr = fruits.split(","); // arr revenge now ["Apple", "Orange", "Peach"] alert(arr);

Бие даасан ялагчийн танхим

Энэ объект нь ангиллын нэрийг зайгаар тусгаарлахын тулд className-ийн хүчийг агуулдаг:

cls анги нэмдэг addClass(obj, cls) функцийг бичнэ үү, тэгэхгүй бол хамаагүй:

ddClass(obj, "шинэ") // obj.className="нээлттэй цэс шинээр" addClass(obj, "нээлттэй") // ямар ч өөрчлөлт байхгүй (анги аль хэдийн байгаа) addClass(obj, "me") // obj.className= "Нээлттэй цэсийг шинээр би" дохиолол(obj.className) //

Массиваас үлдсэн утгуудыг аваад дохиогоор харуулна уу.

ClassName болон гогцоог хэсэг болгон хуваах шаардлагатай. Анги нь мэдэгдэхгүй бол нэмэгдэнэ.

Бүтээмжийг нэмэгдүүлэх гурван оновчлолын мөчлөг:

функц addClass(elem, cls) ( for(var c = elem.className.split(" "), i=c.length-1; i>=0; i--) ( хэрэв (c[i] == cls ) буцах ) elem.className += " "+cls ) var obj = ( className: "нээлттэй цэс" ) addClass(obj, "шинэ") addClass(obj, "нээлттэй") alert(obj.className) // цэсийг нээх шинэ

Одоогийн хэрэглээнд c өөрчлөлтийг i мөчлөгийн эхэнд оноож, үлдсэн индексийн хувьд i утгыг тогтооно.

Цикл өөрөө шууд бүрэлдэж, оюун ухаан i>=0 гэж төгсдөг. i>=0 швед хэлийг шалгадаг учраас i-г бага. JavaScript-д байгаа зүйл нь массив дахь хайлтыг хурдасгадаг.

Тайрахад зориулсан урт вики

Нэмэлт уртын хүчийг авахын тулд та массивыг дараах дарааллаар тайрч болно.

Та огноог тохируулж, хөтөч массивыг таслав.

Массив нь түүний зурсан объект юм

Үнэн хэрэгтээ JavaScript массив нь нэмэлт утгыг автоматаар суулгах, тусгай аргууд гэх мэт нэмэлтүүдтэй объект юм.

Энэ ойлголт бусад хэл дээр, түүний дотор тасалддаггүй санах ойн сегментэд давтагддаг. Үүнийг мөн холбосон жагсаалтад үндэслэн зураг, стек болгон хуваадаг.

Массивын тоон бус түлхүүрүүд

Түлхүүрүүд нь тоо биш, гэхдээ тэдгээр нь бас нэр байж болно:

arr = arr = 5 arr.prop = 10 // тэгж болохгүй

JavaScript массивууд нь бүтээмжийн хувьд давуу талтай, мөн дутагдалтай талуудтай хэш хүснэгттэй байдаг.

Жишээ нь, push/pop нь зөвхөн маш хүчтэй үнэртэй массын хэт элементүүдтэй ажилладаг.

түлхэх нь зөвхөн төгсгөлд нь ажилладаг:

var arr = ["Миний", "массив"] arr.push("ямар нэгэн зүйл") alert(arr) // эгнээ "массив"

Шилжүүлэх/шилжүүлэх аргууд нь массивын дугаарыг бүхэлд нь өөрчлөх шаардлагатай тул ашигтай байдаг. Дугаарлахыг өөрчлөхийн тулд залгах аргыг бас ашиглаж болно:

Тиймээс шилжилт/нөөцлөлтийг илүү эрчимтэй, бага түлхэлт/поп гүйцэтгэдэг. Массив том байх тусам массивыг эрэмбэлэхийн тулд JavaScript илүү их хугацаа шаардагдана.

Бие даасан ялагчийн танхим

Үр дүн нь юу вэ? Яагаад?

arr = ["a", "b"] arr.push(function() ( alert(энэ) )) arr() // ?

Массиваас үлдсэн утгуудыг аваад дохиогоор харуулна уу.

Массив ба объектын фрагментууд, arr ..үнэн хэрэгтээ объектын аргыг дуудах замаар, тухайлбал obj арга:

arr() // arr()-тай ижил // синтаксийн хувьд буруу биш, харин үзэл баримтлалын хувьд ижил: arr.2() // obj.method()-тай ижил хэв маягаар дахин бичсэн this = arr функцийг ингэж дамжуулдаг. , дараа нь энэ нь arr оронд харагдах болно. arr = ["a", "b"] arr.push(function() ( alert(энэ) )) arr() // "a","b",функц

Разреджени массив, тодорхойлолтын урт

Урт хүчин чадал нь JavaScript массивын хэмжээг бус харин үлдсэн индекс + 1-ийг авах боломжийг танд олгоно. Индекс дэх "цоорхой" бүхий сийрэг массивуудын талаар ярих нь чухал юм.

Дараагийн алхам нь хоосон жимсэнд хоёр элемент нэмнэ, эс тэгвээс уртын утга 100-аас бага байх болно:

var fruits = // хоосон массив fruits = "Peach" fruits = "Apple" alert(fruits.length) // 100 (массивт ердөө 2 элемент байна)

Та сийрэг массив гаргахыг оролдох үед хөтөч алга болсон индексүүдийн утгыг хоосон элемент болгон харуулах болно.

var fruits = // empty array fruits = "Peach" fruits = "Apple" alert(жимс) // ,Peach,Apple

Ale massif бол хоёр түлхүүртэй объект юм. Өдөр тутмын үнэ цэнэ нь орон зай эзэлдэггүй.

Хэрэв массивын аргууд нь тэдний өмнө зогсонги байдалд орсон бол өсөн нэмэгдэж буй массивууд нь химерик байдлаар ажилладаг. Индекс нь алга болсон хүмүүсийн талаар анхааруулга байхгүй байна.

var fruits = fruits = "Peach" fruits = "Apple" alert(fruits.pop()) // "Apple"-г сонго (индекс 9-д) alert(fruits.pop()) // оноогоогүй зүйлийг сонго (индекс 8 дээр) )

Ховордсон массивуудыг нэгтгэхийг хичээ. Тэр болгонд тэдний арга нь хэвийн ажиллахгүй. Натомист використ Объект.

Массиваас Видалення

Бидний мэдэж байгаагаар массив нь объект биш тул утгыг харахын тулд устгахыг ашиглаж болно:

var arr = ["Явах", "хүрэх", "гэрт"] устгах арр // одоо arr = ["Явах", тодорхойгүй, "гэр"] alert(arr) // оруулаагүй

Аливаа зүйлийг харах нь чухал гэдгийг та харж байна, гэхдээ бидний хүссэнээр биш, учир нь та хангалтгүй элементээс өшөө авахыг хүсч байна.

Устгах оператор нь түлхүүр-утга хосыг устгадаг, тэгээд л болоо. Мэдээжийн хэрэг, массив нь зөвхөн хэш тул алсын элементийн байрлал тодорхойгүй байна.

Ихэнх тохиолдолд бид индекс хоорондын лавлахыг устгахгүйгээр элементийг устгах шаардлагатай болдог. Энэ талаар бидэнд туслах өөр нэг арга бий.

залгах арга

Холбох арга нь элементүүдийг устгаж, JavaScript дээр сольж болно баян дэлхийн массивууд. Його синтакс:

arr.splice(индекс, устгахCount[, elem1, ..., elemN])

DeleteCount элементийг индексээс эхлэн устгаад дараа нь elem1, ..., elemN дээр оруулна.

Хэд хэдэн өгзөгийг харцгаая:

var arr = ["Go", "to", "home"] arr.splice(1, 1) // 1 элементийг индекс 1-ээс эхлэн сонго alert(arr.join(",")) // ["Явах" ", "home"] (1 элемент хасагдсан)

Ийм байдлаар та массиваас нэг элемент сонгохын тулд залгаа үүсгэж болно. Хоосон зайг бөглөхийн тулд массив дахь элементүүдийн тоог оруулна.

var arr = ["Go", "to", "home"] arr.splice(0, 1) // 0 индексээс эхлэн 1 элементийг устгасан alert(arr) // "to" нь эхний элемент болно

Дараах жишээ нь элементүүдийг хэрхэн солихыг харуулж байна:

Холбох арга нь алслагдсан элементүүдийн массивыг эргүүлдэг:

var arr = ["Явах", "руу", "гэртээ", "одоо"]; // эхний 2 элементийг устгана var арилгасан = arr.splice(0, 2) alert(хассан) // "Явах", "хээр"<-- массив удаленных элементов splice может вставлять элементы, задайте 0 для deleteCount. var arr = ["Go", "to", "home"]; // со второй позиции // удаляем 0 // и вставляем "my", "sweet" arr.splice(2, 0, "my", "sweet") alert(arr) // "Go", "to", "my", "sweet", "home"

Энэ арга нь массивын төгсгөлд нэмсэн сөрөг индексийг орлуулж болно:

var arr = // элементийн хувьд -1 (өмнөх) // 0 элемент хасагдсан, // болон 3 ба 4-г оруулсан arr.splice(-1, 0, 3, 4) alert(arr) // 1,2, 3, 4.5

Бие даасан ялагчийн танхим

Хүчин чадлын объект нь ангиллын нэрийг хоосон зайгаар тусгаарласан className юм:

var obj = (ангиллын нэр: "нээлттэй цэс")

cls классыг даалгавраас хасдаг removeClass(obj, cls) функцийг бичнэ үү:

removeClass(obj, "нээлттэй") // obj.className="цэс" removeClass(obj, "blabla") // ямар ч өөрчлөлт байхгүй (устгагдсан ангийн хувьд ямар ч утга байхгүй)

Массиваас үлдсэн утгуудыг аваад дохиогоор харуулна уу.

Та className-г хэсэг болгон хувааж, тэдгээр хэсгүүдийг давталтаар давтах хэрэгтэй. Орхих нь олдсоны дараа JavaScript объектуудын массиваас устгагдах ба эцэст нь буцааж нэмнэ.

Дараахыг оновчтой болгосон:

функц устгахClass(elem, cls) ( for(var c = elem.className.split(" "), i=c.length-1; i>=0; i--) ( хэрэв (c[i] == cls ) c.splice(i,1) ) elem.className = c.join(" ") ) var obj = ( className: "open menu" ) removeClass(obj, "open") removeClass(obj, "blabla") дохиолол (obj.className) // Цэс

Заасан хэрэглээний хувьд c өөрчлөлтийг мөчлөгийн эхэнд, i даалгаврын хувьд үлдсэн индексийг тохируулна.

Цикл өөрөө гарц дээр шууд дуусч, i>=0 гэж төгсдөг. Энэ нь i>=0 нь илүү хурдан, бага i баталгаажсантай холбоотой юм. Хүчний эрэл хайгуулыг юу хурдасгах вэ c.

зүсэх арга

Та slice(begin[, end]) аргыг ашиглан массивын хэсгийг хасаж болно: var arr = ["Яагаад", "суралцах", "JavaScript"]; var arr2 = arr.slice(0,2) // 0-ээс эхлэн 2 элемент авна alert(arr2.join(", ")) // "Яагаад сур"

Энэ арга нь JavaScript-ийн массив дахь олон элементийг өөрчлөхгүй, харин түүний нэг хэсгийг хуулбарлахыг анхаарна уу.

Та ижил индексээс эхлэн бүх элементүүдийг хасахын тулд өөр аргументыг орхиж болно:

var arr = ["Яагаад", "суралцах", "JavaScript"]; var arr2 = arr.slice(1) // 1 alert(arr2.join(", "))-аас эхлэн бүх элементүүдийг хүлээн авна // "сур, JavaScript"

Арга нь дэмждэг сөрөг индексүүд, String#slice-ийн адил.

урвуу арга

Өөр нэг улаан арга нь урвуу юм. Би салмаар байна гэж бодъё Би заримыг нь үлдээедомэйн, жишээ нь " com"харах" my.site.com" Тэнхлэгийг дараах байдлаар үүсгэж болно.

var домэйн = "my.site.com" var last = domain.split(".").reverse() дохиолол(сүүлийн)

JavaScript массив нь аргыг дуудаж, дараа нь устгагдсан массиваас элемент гаргаж авахын тулд нугалах синтакс (урвуу ()) дэмждэг болохыг анхаарна уу.

Та урт дуудлага хийх боломжтой, жишээлбэл, урвуу() 0] arr.sort() alert(arr) // 1, 15, 2

Навигацийн кодыг илүү өндөрт ажиллуулна уу. Та 1, 15, 2 гэсэн дарааллыг хасдаг. Учир нь энэ арга нь бүх зүйлийг дарааллаар нь цэгцэлж, үг хэллэгийн дарааллыг дагаж мөрддөг.