Javascript массивын уртыг хэрхэн тодорхойлох, түүнтэй ажиллах бусад олон функцууд. Массиваас хасаж байна

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

JavaScript дахь массив гэж юу вэ?

Массив гэдэг үнэт зүйлсийн захиалгат цуглуулга. Энэ цуглуулгын утгыг элементүүд гэж нэрлэдэг. Массив дахь элемент бүр өөрийн серийн дугаартай (тоо) бөгөөд үүнийг индекс гэж нэрлэдэг. Индексүүдийг 0-ээс эхлэн дугаарлана.

Дараах зурагт 5 элементээс бүрдэх тоон массивыг харуулав. Энэ массивын элементүүд нь дараах өгөгдлийг агуулна: 123 (индекс 0), 7 (индекс 1), 50 (индекс 2), -9 (индекс 3), 24 (индекс 4).

Массив үүсгэх (зарлах).

JavaScript дээр массив үүсгэх нь ихэвчлэн ашиглан хийгддэг массив шууд утга.

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

Жишээлбэл:

Var хоосон =; // хоосон массив var numbers = ; // тоон массив var arr =; // төрөл бүрийн өгөгдлийн төрлийг агуулсан массив

JavaScript массив дахь утгууд нь ижил төрлийн байх албагүй. Тэдгээр. Нэг массив нь өөр өөр төрлийн өгөгдлийн утгыг агуулж болно.

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

Жишээлбэл:

// 3 элементээс бүрдэх массив үүсгэх var smartphoneColors = ["Хар", "Цагаан", "Саарал"]; // 0 ба 2 индекс бүхий ухаалаг утасныColors массивын элементүүдийн утгуудыг хөтчийн консол дээр харуулах console.log("Ухаалаг утасны Colors массив элементийн 0 индекстэй утга: " + smartphoneColors); // "0 индекстэй ухаалаг утасныColors массив элементийн утга: Хар" console.log("2-р индекстэй ухаалаг утасныColors массив элементийн утга: " + smartphoneColors); // "0 индекстэй ухаалаг утасныColors массив элементийн утга: Саарал" // 1-р индекстэй ухаалаг утасныColors массив элементийн утгыг "Улаан" ухаалаг утас болгон өөрчлөхColors = "Улаан"; // ["Хар", "Улаан", "Саарал"] // 3-р индекс бүхий ухаалаг утасныColors массив элементийг "Цэнхэр" ухаалаг утсанд тохируулна ууColors = "Цэнхэр"; // ["Хар", "Улаан", "Саарал", "Цэнхэр"]

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

Var уртA = 7, өргөнA = 5; var point = ;

Объектуудыг массив элементийн утга болгон ашиглаж болно.

Var цэгүүд = [ (x1: 5, y1: 3), (x1: 7, y1: 10), (x1: 12; y1: 0) ]; // 3 объектоос бүрдэх массив

Массив үүсгэх өөр нэг аргань Array бүтээгч функцийг дуудахаас бүрдэнэ.

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

Var хоосон = шинэ массив(); // хоосон массив

Массив үүсгэх энэ арга нь литералтай тэнцүү юм.

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

Var arr = шинэ массив(5); // 5 элементээс бүрдэх массив (элементийн утгууд тодорхойгүй)

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

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

уртын шинж чанар (массивын урт)

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

//Масив функцийн элементүүдийн утгыг жагсаан массив үүсгэх var volumeHDDs = new Array("500Gb","1Tb","2Tb"); //lengthArray хувьсагчийг volumeHDDs массивын уртад оноох var lengthArray = volumeHDDs.length;

Массивын эхний элементийг хэрхэн авах вэ

Массивын эхний элементийн утгыг авахдаа энэ массивын дөрвөлжин хаалтанд 0-ийн тоог зааж өгнө.

//3 элементээс бүрдэх массив үүсгэх var volumeHDDs = new Array("500Gb","1Tb","2Tb"); //массивын эхний элементийн утгыг авах var firstValue = volumeHDDs;

Массивын сүүлчийн элементийг хэрхэн авах вэ

Массивын сүүлийн элементийн утгыг энэ массивын дөрвөлжин хаалтанд array_name.length-1 гэсэн илэрхийллийг зааж өгснөөр олно.

//3 элементээс бүрдэх массив үүсгэх var volumeHDDs = new Array("500Gb","1Tb","2Tb"); //массивын сүүлийн элементийн утгыг авах var lastValue = volumeHDDs;

Массив дээр давталт хийх

Массивын элементүүдийг давтах нь for давталт ашиглан хийгддэг.

Жишээлбэл, массивын бүх элементүүдийг давтаж, тэдгээрийн утгыг хөтчийн консол дээр харуулъя (F12):

//4 элементээс бүрдэх Оюутны нэрийн массив үүсгэх var nameStudents = new Array("Петя","Вася","Коля","Максим"); //0-ээс массивын урт-1 хүртэлх массивын элементүүдийг давтах (var i=0; i)<= nameStudents.length-1; i++) { console.log(i+1 + " элемент массива = " + nameStudents[i]); }

Устгах операторын зорилго юу вэ?

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

Var namePlanets = new Array("Venus","Mercury","Earth","Mars"); Planets нэрийг устгах; for (var i=0; i<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

Массивтай ажиллах функцууд (Масивын объектын аргууд)

Array объект нь массивтай ажиллах дараах аргуудыг (функцуудыг) агуулна.

  • ээлж
  • солих
  • зүсмэл
  • залгаас
  • салгах
  • урвуу

Түлхэх арга (массивын төгсгөлд элемент нэмэх)

Түлхэх арга нь массивын төгсгөлд элемент нэмэхэд зориулагдсан. Энэ элементийн утгыг энэ аргын параметр болгон зааж өгсөн болно. Үүний үр дүнд түлхэх арга нь нэмсэн зүйлийг харгалзан массив дахь элементийн тоог буцаана.

Var namePlanets = ["Сугар", "Мөнгөн ус", "Дэлхий", "Ангараг"]; namePlanets.push("Бархасбадь"); // 5 console.log(namePlanets); // ["Сугар", "Буд", "Дэлхий", "Ангараг", "Бархасбадь"]

поп арга (массиваас сүүлчийн элементийг устгах)

Поп арга нь массиваас сүүлчийн элементийг устгахад зориулагдсан. Энэ арга нь параметргүй. Үүний үр дүнд массивын сүүлчийн (арилгасан) элементийн утгыг буцаана.

Var namePlanets = ["Сугар", "Мөнгөн ус", "Дэлхий", "Ангараг"]; namePlanets.pop(); // "Ангараг гараг" console.log(namePlanets); // ["Сугар", "Мөнгөн ус", "Дэлхий"]

Shift арга (массиваас эхний элементийг устгах)

Шилжилтийн арга нь массиваас эхний элементийг арилгахад зориулагдсан, i.e. 0 индекстэй элемент. Массивын бусад бүх элементүүд эхлэл рүү шилждэг, i.e. тус бүрийн хувьд индексийг 1-ээр бууруулна. Энэ арга нь үр дүнд нь хасагдсан элементийн утгыг буцаана.

Var namePlanets = ["Сугар", "Мөнгөн ус", "Дэлхий", "Ангараг"]; namePlanets.shift(); // "Venus" console.log(namePlanets); // ["Мөнгөн ус", "Дэлхий", "Ангараг"]

unshift арга (массивын эхэнд элемент нэмэх)

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

Var namePlanets = ["Мөнгөн ус", "Дэлхий", "Ангараг", "Бархасбадь"]; namePlanets.unshift("Сугар"); // 5 console.log(namePlanets); // ["Сугар", "Буд", "Дэлхий", "Ангараг", "Бархасбадь"]

зүсмэлийн арга (массивын хэсгийг хуулах)

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

Зүсмэлийн арга нь 2 параметртэй:

  • 1 параметр (шаардлагатай) - элементүүдийг хуулж эхлэх элементийн индексийг зааж өгөх зорилготой;
  • Параметр 2 (заавал биш) - хуулах шаардлагатай элементийн индексийг зааж өгөх зорилготой (энэ тохиолдолд энэ нь шинэ массивт ороогүй болно). Хэрэв та үүнийг заагаагүй бол заасан массивын төгсгөл хүртэлх элементүүдийг хуулах болно.
var namePlanets = ["Сугар", "Мөнгөн ус", "Дэлхий", "Ангараг", "Бархасбадь"]; var newNamePlanets = namePlanets.slice(2, 4); // ["Дэлхий", "Ангараг"]

Холбох арга (массивын агуулгыг өөрчлөх)

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

Холбох аргын синтакс нь:

Array.splice(startIndex, deleteCount [, element1[, element2[, ...]]]); /* startIndex (шаардлагатай) - массивыг өөрчилж эхлэх элементийн эхлэлийн индекс. Хэрэв та массивын уртаас их тоог startIndex гэж зааж өгвөл эхлэлийн индексийг массивын төгсгөлд тохируулна. Хэрэв та сөрөг тоог startIndex гэж зааж өгвөл эхлэл элементийг төгсгөлөөс нь тоолох болно. deleteCount (шаардлагатай) - массиваас хэдэн элемент устгах шаардлагатай байгааг харуулсан тоо. Хэрэв массиваас элементүүдийг устгах шаардлагагүй бол deleteCount-ийг 0 болгож тохируулах ёстой. Үүний дараа та массив дээр нэмэх ядаж нэг шинэ элементийг зааж өгөх ёстой. Хэрэв та startIndex-ээс эхлэн массив дахь үлдсэн элементүүдийн тооноос хэтрэх тоог deleteCount гэж зааж өгвөл энэ тохиолдолд тэдгээр нь устасан хэвээр байх болно (өөрөөр хэлбэл, эхлэлийн индексээс эхлэн массивын төгсгөл хүртэлх бүх элементүүд) element1, element2, .. (заавал биш) - массив дээр нэмэх шаардлагатай элементүүд. */

Холбох аргыг ашиглах жишээ.

Массиваас зарим элементийг арилгахын тулд залгах аргыг ашиглана.

Var namePlanets = ["Сугар", "Мөнгөн ус", "Дэлхий", "Ангараг"]; namePlanets.splice(2, 2); //["Дэлхий", "Ангараг"] console.log(namePlanets); // ["Сугар", "Мөнгөн ус"]

Холбох аргыг ашиглан массиваас элементийг устгаж, түүнд шинийг нэмнэ.

Var namePlanets = ["Сугар", "Мөнгөн ус", "Дэлхий", "Ангараг"]; namePlanets.splice(1, 1, "Уран", "Далай ван", "Сатурн"); // ["Мөнгөн ус"] console.log(namePlanets); // ["Сугар", "Тэнгэрийн ван", "Далай ван", "Санчир", "Дэлхий", "Ангараг"]

Зөвхөн массив руу шинэ элемент нэмэхийн тулд залгах аргыг ашиглана.

Var namePlanets = ["Бархасбадь", "Сатурн", "Тэнгэрийн ван"]; namePlanets.splice(0, 0, "Сугар", "Мөнгөн ус", "Дэлхий", "Ангараг"); // console.log(namePlanets); // ["Сугар", "Буд", "Дэлхий", "Ангараг", "Бархасбадь", "Сатурн", "Тэнгэрийн ван"]

нэгдэх арга (массивийг мөр болгон хувиргах)

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

Нэгдэх аргын синтакс:

Array.join(); /* тусгаарлагч (заавал биш) - массив элемент бүрийн хооронд холбох мөр болгон ашигладаг тусгаарлагч. Хэрэв энэ параметрийг заагаагүй бол "," нь холболтын мөр болгон ашиглагдана. Хэрэв та хоосон мөрийг параметр болгон зааж өгвөл буцаж ирсэн мөрөнд массивын элементүүдийг юугаар ч салгахгүй */

Var berries = ["Усан үзэм", "Усан үзэм", "Үхрийн нүд", "Сарнайн хонго"]; var berriesStr1 = berries.join(); // "Усан үзэм, усан үзэм, үхрийн нүд, сарнайн хонго" var berriesStr2 = berries.join(""); // "GrapesGrapesCurrantRosehip" var berriesStr3 = berries.join(", "); // "Усан үзэм, усан үзэм, үхрийн нүд, сарнайн цэцэг" var berriesStr4 = berries.join(" + "); // "Усан үзэм + Усан үзэм + Үхрийн нүд + Сарнайн хонго"

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

Var berries = ["Усан үзэм", "Усан үзэм", "Үхрийн нүд", "Сарнайн хонго"]; var berriesStr1 = berries.join(худал); // "GrapesfalseGrapesfalseCurrantfalseRosehip" var berriesStr2 = berries.join(4/2); // "Grapes2Grapes2Currant2Rose Hip" Утга нь хоосон эсвэл тодорхойгүй массив элементүүдийг хоосон мөр рүү шилжүүлэх болно. var arr = ; var arrStr = arr.join(", "); // "0, 5, -4"

Мөрийг массив болгон хувиргах - хуваах

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

Var strElementComputers = "Системийн нэгж, Монитор, Гар, Хулгана, Чанга яригч, Принтер"; var elementComputers = strElementComputers.split(", "); console.log("Масиви дахь элементийн тоо: " + elementComputers.length); for (var i=0; i<= elementComputers.length-1; i++) { console.log(i + " элемент массива = " + elementComputers[i]); }

Массивын элементүүдийг урвуу дарааллаар дахин эрэмбэлэх - урвуу

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

Var namePlanets = new Array("Venus","Mercury","Earth","Mars"); namePlanets.reverse(); console.log("Масиви дахь элементийн тоо: " + namePlanets.length); for (var i=0; i<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

Массивын элементүүдийг эрэмбэлэх - эрэмбэлэх

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

Var namePlanets = new Array("Venus","Mercury","Earth","Mars"); namePlanets.sort(); console.log("Масиви дахь элементийн тоо: " + namePlanets.length); for (var i=0; i<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

2017.06.21 12:17

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

Var arr = ["эхний", "хоёр дахь"]; console.log(arr.length); // 2

Javascript дахь массивууд дутуу индекстэй байж болно. Жишээлбэл

Var arr = ; arr = "эхний"; arr = "хоёр дахь";

length шинж чанар нь массивын хамгийн их индексийг буцаана + 1. i.e. өгөгдсөн жишээнд урт = 5.

Жаваскрипт дээр массив дахь элементийн тоог тооцоолох

Array.prototype.count = function())( var үр дүн = 0; for(var i = 0; i)< this.length; i++) if (this[i] != undefined) result++; return result; }

Хэрэглээний жишээ

Var arr = ; arr = "эхний"; arr = "хоёр дахь"; console.log(arr.count()); //2

Та мөн length шинж чанарт утга оноож болно. Энэ нь одоо байгаа массивын уртыг багасгах боломжийг танд олгоно.

Var arr = ["эхний", "хоёр дахь", "гурав дахь"]; arr.length = 2; console.log(arr); // ["эхний", "хоёр дахь"]

Жаваскрипт дээр массивын хэмжээг байтаар тооцоолох

Массивууд нь ердийн объектууд тул массивын хэмжээг байтаар тооцоолох нь бусад объектын хэмжээг тооцоолохоос ялгаатай биш юм. Харамсалтай нь javascript нь хэмжээг тооцоолох API өгдөггүй тул та өөрөө тооцоолох хэрэгтэй болно. Үүнийг дараах байдлаар хийнэ: бид объектын бүх шинж чанарыг шалгана; хэрэв шинж чанар нь анхдагч төрлийн бол бид энэ төрлийн жишээний хэмжээг ерөнхий үр дүнд нэмнэ; хэрэв шинж чанар нь объект агуулж байвал бид рекурсив байдлаар тооцоолно. түүний хэмжээ.

Function sizeOf(obj) ( var bytes = 0; if(obj !== null && obj !== undefined) ( switch(typeof obj) ( case "number": байт += 8; завсарлага; case "string": байт += obj.length * 2; break; case "boolean": байт += 4; завсарлага; case "object": for(var key in obj) ( байт += sizeOf(obj); ) завсарлага; ) ) буцах байт ; );

Энэ арга нь үнэн зөв биш бөгөөд олон асуудалтай байдаг - жишээлбэл, төгсгөлгүй гогцоонд орох боломж байдаг.

Сүүлийн шинэчлэлт: 2018-03-26

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

Массивыг эхлүүлж байна

Та дөрвөлжин хаалт эсвэл Массив үүсгэгчийг ашиглан хоосон массив үүсгэж болно:

Var хэрэглэгчид = new Array(); var people =; console.log(хэрэглэгч); // Массив консол.лог(хүмүүс); // Массив

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

Var хэрэглэгчид = new Array("Том", "Билл", "Алис"); var people = ["Сэм", "Жон", "Кэйт"]; console.log(хэрэглэгч); // ["Том", "Билл", "Алис"] console.log(хүмүүс); // ["Сэм", "Жон", "Кэйт"]

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

Var хэрэглэгчид = new Array(); хэрэглэгчид = "Том"; хэрэглэгчид = "Кейт"; console.log(хэрэглэгч); // "Том" console.log(хэрэглэгч); // тэмдэглэгдээгүй

Анхдагч байдлаар массив нь тэг урттай байх нь хамаагүй. Индексүүдийг ашиглан бид массив дахь нэг буюу өөр элементийг тодорхой индексээр орлуулж болно.

урт

Массивын уртыг мэдэхийн тулд length шинж чанарыг ашиглана:

Var fruit = new Array(); жимс = "алим"; жимс = "лийр"; жимс = "чавга"; document.write("Жимсний массив" + fruit.length + " элемент:
"); for(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

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

Var хэрэглэгчид = new Array(); // массивт 0 элемент байна хэрэглэгчид = "Том"; хэрэглэгчид = "Кейт"; хэрэглэгчид = "Сэм"; for(var i=0; i

Хөтөчийн гаралт:

Том Кейт тодорхойгүй тодорхойгүй Сэм

Бид 2 ба 3-р индексийн элементүүдийг нэмээгүй ч энэ тохиолдолд массивын урт нь 5 тоо байх болно. 2 ба 3 индекстэй элементүүд тодорхойгүй утгатай байх болно.

Массив хуулж байна. зүсмэл()

Массивыг хуулах нь гүехэн эсвэл гүехэн (гүехэн хуулбар) болон гүн (гүн хуулбар) байж болно.

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

Var хэрэглэгчид = ["Том", "Сэм", "Билл"]; console.log(хэрэглэгч); // ["Том", "Сэм", "Билл"] var хүмүүс = хэрэглэгчид; // гүехэн хуулбарлах хүмүүс = "Майк"; // хоёр дахь элементийг өөрчлөх console.log(хэрэглэгч); // ["Том", "Майк", "Билл"]

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

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

Var хэрэглэгчид = ["Том", "Сэм", "Билл"]; console.log(хэрэглэгч); // ["Том", "Сэм", "Билл"] var хүмүүс = users.slice(); // гүнзгий хуулбар хүмүүс = "Майк"; // хоёр дахь элементийг өөрчлөх console.log(хэрэглэгч); // ["Том", "Сэм", "Билл"] console.log(хүмүүс); // ["Том", "Майк", "Билл"]

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

slice() арга нь массивын хэсгийг хуулах боломжийг олгодог:

Var хэрэглэгчид = ["Том", "Сэм", "Билл", "Алис", "Кейт"]; var хүмүүс = хэрэглэгчид.зүсмэл(1, 4); console.log(хүмүүс); // ["Сэм", "Билл", "Алис"]

Slice() аргыг массиваас утгыг сэргээхэд ашигладаг эхлэл ба төгсгөлийн индексийг дамжуулдаг. Өөрөөр хэлбэл, энэ тохиолдолд шинэ массивын сонголт нь индекс 1-ээс индекс 4 хүртэл явагдана, үүнд оруулаагүй болно. Массивыг индексжүүлэх нь тэгээс эхэлдэг тул шинэ массив нь хоёр, гурав, дөрөв дэх элементүүдийг агуулна.

түлхэх()

Push() арга нь массивын төгсгөлд элемент нэмнэ:

Var fruit =; fruit.push("алим"); fruit.push("лийр"); fruit.push("чавга"); жимс.түлхэх("интоор","гүйлс
"); document.write(жимс); // алим, лийр, чавга, интоор, чангаанз

поп()

pop() арга нь массиваас сүүлчийн элементийг устгадаг:

Var fruit = ["алим", "лийр", "чавга"]; var lastFruit = fruit.pop(); // баримт бичгийн массиваас сүүлчийн элементийг задлах.write(lastFruit + "
"); document.write("Жимсний массив" + fruit.length + " элемент:
"); for(var i=0; i ");

Хөтөчийн гаралт:

Plums Жимсний массив нь 2 элементтэй: алимны лийр

шилжилт ()

Shift() арга нь массиваас эхний элементийг авч устгадаг.

Var fruit = ["алим", "лийр", "чавга"]; var firstFruit = fruit.shift(); document.write(firstFruit + "
"); document.write("Жимсний массив" + fruit.length + " элемент:
"); for(var i=0; i ");

Хөтөчийн гаралт:

Алим Жимсний массив нь 2 элементтэй: лийр чавга

unshift()

unshift() арга нь массивын эхэнд шинэ элемент нэмнэ:

Var fruit = ["алим", "лийр", "чавга"]; fruit.unshift("гүйлс"); баримт бичиг.бичих (жимс);

Хөтөчийн гаралт:

Гүйлс, алим, лийр, чавга

Элементийг индексээр нь хасаж байна. залгаас()

splice() арга нь тодорхой индекс дэх элементүүдийг устгадаг. Жишээлбэл, гурав дахь индексээс элементүүдийг хасах:

Var хэрэглэгчид = ["Том", "Сэм", "Билл", "Алис", "Кейт"]; var устгагдсан = users.splice(3); console.log(устгагдсан); // [ "Алис", "Кэйт" ] console.log(хэрэглэгч); // [ "Том", "Сэм", "Билл" ]

Зүсмэлийн арга нь устгасан элементүүдийг буцаана.

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

Var хэрэглэгчид = ["Том", "Сэм", "Билл", "Алис", "Кейт"]; var устгагдсан = users.splice(-1); console.log(устгагдсан); // [ "Кейт" ] console.log(хэрэглэгч); // [ "Том", "Сэм", "Билл", "Алис" ]

Аргын нэмэлт хувилбар нь устгах төгсгөлийн индексийг зааж өгөх боломжийг олгодог. Жишээлбэл, эхнийхээс гурав дахь индексийг устгая:

Var хэрэглэгчид = ["Том", "Сэм", "Билл", "Алис", "Кейт"]; var устгагдсан = users.splice(1,3); console.log(устгагдсан); // [ "Сэм", "Билл", "Алис" ] console.log(хэрэглэгч); // [ "Том", "Кейт" ]

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

Var хэрэглэгчид = ["Том", "Сэм", "Билл", "Алис", "Кейт"]; var устгагдсан = users.splice(1,3, "Анн", "Боб"); console.log(устгагдсан); // [ "Сэм", "Билл", "Алис" ] console.log(хэрэглэгч); // [ "Том", "Анн", "Боб", "Кейт" ]

Энэ тохиолдолд бид 1-3-р индексээс гурван элементийг устгаад оронд нь хоёр элемент оруулна.

concat()

Массивуудыг нэгтгэхэд concat() аргыг ашигладаг:

Var fruit = ["алим", "лийр", "чавга"]; var хүнсний ногоо = ["улаан лооль", "өргөст хэмх", "төмс"]; var бүтээгдэхүүн = fruit.concat(хүнсний ногоо); for(var i=0; i< products.length; i++) document.write(products[i] + "
");

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

Var fruit = ["алим", "лийр", "чавга"]; var үнэ =; var бүтээгдэхүүн = fruit.concat(үнэ);

нэгдэх()

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

Var fruit = ["алим", "лийр", "чавга", "гүйлс", "тоор"]; var fruitString = fruit.join(", "); document.write(fruitString);

join() аргыг массивын элементүүдийн хоорондох тусгаарлагчаар дамжуулдаг. Энэ тохиолдолд таслал ба хоосон зай (", ") тусгаарлагч болгон ашиглах болно.

ангилах()

sort() арга нь массивыг өсөх дарааллаар эрэмбэлдэг:

Var fruit = ["алим", "лийр", "чавга", "гүйлс", "тоор"]; fruit.sort(); for(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

Хөтөчийн гаралт:

Apricots лийр тоор чавга алим

урвуу()

Reverse() арга нь массивыг арагш эргүүлнэ:

Var fruit = ["алим", "лийр", "чавга", "гүйлс", "тоор"]; fruit.reverse(); for(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

Хөтөчийн гаралт:

Тоор чангаанз чавга лийр алим

Sort() аргатай хослуулан массивыг буурах дарааллаар эрэмбэлж болно.

Var fruit = ["алим", "лийр", "чавга", "гүйлс", "тоор"]; fruit.sort().reverse(); for(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

Хөтөчийн гаралт:

Алим чавга тоор лийр чангаанз

Элементийн индексийг олох

indexOf() болон lastIndexOf() аргууд нь массив дахь элементийн эхний болон сүүлчийн оруулгын индексийг буцаана. Жишээлбэл:

Var fruit = ["алим", "лийр", "чавга", "алим", "лийр"]; var firstIndex = fruit.indexOf("алим"); var lastIndex = fruit.lastIndexOf("алим"); var otherIndex = fruit.indexOf("интоор"); document.write(firstIndex); // 0 document.write(lastIndex); // 3 баримт бичиг.write(otherIndex); // -1

firstIndex нь 0 утгатай байна, учир нь массив дахь "алим" мөрийн эхний оруулга нь 0 индекс, сүүлчийнх нь 3 индекс дээр байна.

Хэрэв элемент массив дотор байхгүй бол энэ тохиолдолд indexOf() болон lastIndexOf() аргууд нь -1 утгыг буцаана.

бүр()

Every() арга нь бүх элементүүд тодорхой нөхцөлтэй тохирч байгаа эсэхийг шалгадаг.

Var тоонууд = [ 1, -12, 8, -4, 25, 42 ]; функцийн нөхцөл(утга, индекс, массив) ( var үр дүн = худал; хэрэв (утга > 0) ( үр дүн = үнэн; ) үр дүнг буцаана; ); var passed = тоо.бүгд (нөхцөл); баримт бичиг.бичих(давсан); // худал

Every() арга нь нөхцөлийг параметр болгон илэрхийлэх функцээр дамждаг. Энэ функц нь гурван параметрийг авдаг:

Функцийн нөхцөл (утга, индекс, массив) ( )

Утга параметр нь давтагдаж буй массивын элементийг, индексийн параметр нь тухайн элементийн индексийг, массивын параметр нь массивын лавлагааг дамжуулдаг.

Энэ функцээр бид дамжуулсан элементийн утгыг зарим нөхцөл байдалд нийцэж байгаа эсэхийг шалгаж болно. Жишээлбэл, энэ жишээнд бид массивын элемент бүрийг тэгээс их эсэхийг шалгадаг. Хэрэв энэ нь илүү байвал бид үнэн утгыг буцаана, өөрөөр хэлбэл элемент нь нөхцөлийг хангана. Хэрэв бага бол худал гэж буцаана - элемент нь нөхцөлийг хангахгүй байна.

Үүний үр дүнд numbers.every(нөхцөл) аргыг дуудах үед энэ нь тоон массивын бүх элементүүдийг давтаж, нөхцөл функц руу нэг нэгээр нь дамжуулдаг. Хэрэв энэ функц бүх элементүүдэд үнэнийг буцаавал every() арга нь үнэнийг буцаана. Хэрэв дор хаяж нэг элемент нөхцөлтэй тохирохгүй байвал every() арга нь худал буцаана.

зарим нь()

Some() арга нь every() аргатай төстэй бөгөөд зөвхөн дор хаяж нэг элемент нөхцөлтэй тохирч байгаа эсэхийг шалгадаг. Мөн энэ тохиолдолд some() арга нь үнэнийг буцаана. Хэрэв массив дахь нөхцөлтэй тохирох элемент байхгүй бол худал буцаана:

Var тоонууд = [ 1, -12, 8, -4, 25, 42 ]; функцийн нөхцөл(утга, индекс, массив) ( var үр дүн = худал; хэрэв (утга === 8) ( үр дүн = үнэн; ) үр дүн; ); var passed = тоо.зарим(нөхцөл); // үнэн

шүүлтүүр()

filter() арга нь some() болон every() гэх мэт нөхцөл функцийг хүлээн зөвшөөрдөг. Гэхдээ үүнтэй зэрэгцэн энэ нөхцөлийг хангасан элементүүдийн массивыг буцаана:

Var тоонууд = [ 1, -12, 8, -4, 25, 42 ]; функцийн нөхцөл(утга, индекс, массив) ( var үр дүн = худал; хэрэв (утга > 0) ( үр дүн = үнэн; ) үр дүнг буцаана; ); var filteredNumbers = тоо.шүүлтүүр(нөхцөл); for(var i=0; i< filteredNumbers.length; i++) document.write(filteredNumbers[i] + "
");

Хөтөчийн гаралт:

1 8 25 42

forEach() болон map()

forEach() болон map() аргууд нь элементүүдийг давтаж, тэдгээр дээр тодорхой үйлдлүүдийг гүйцэтгэдэг. Жишээлбэл, массив дахь тоонуудын квадратыг тооцоолохын тулд та дараах кодыг ашиглаж болно.

Var тоонууд = [1, 2, 3, 4, 5, 6]; for(var i = 0; i "); }

Гэхдээ forEach() аргыг ашиглан та энэ бүтцийг хялбарчилж болно:

Var тоонууд = [1, 2, 3, 4, 5, 6]; функцийн квадрат(утга, индекс, массив) ( var үр дүн = утга * утга; document.write("Тооны квадрат " + утга + " нь " + үр дүн + "
"); ); тоо.forEach(дөрвөлжин);

ForEach() арга нь ижил функцийг параметр болгон авдаг бөгөөд элемент дээр давтагдах үед давтагдаж буй одоогийн элементийг дамжуулж, түүн дээр үйлдлүүдийг гүйцэтгэдэг.

map() арга нь forEach аргатай төстэй бөгөөд массивын элементүүд дээр үйлдлүүдийг гүйцэтгэдэг функцийг параметр болгон авдаг боловч map() арга нь массивын элементүүд дээр хийсэн үйлдлийн үр дүнгийн хамт шинэ массивыг буцаадаг.

Жишээлбэл, массив дахь тоонуудын квадратыг тооцоолохдоо газрын зургийн аргыг ашиглая:

Var тоонууд = [1, 2, 3, 4, 5, 6]; функцын квадрат(утга, индекс, массив) ( үр дүн = утга * утга; ); var squareArray = тоо. газрын зураг (дөрвөлжин); document.write(squareArray);

map() аргад дамжуулагдсан функц нь давтагдаж буй одоогийн элементийг хүлээн авч, түүн дээр үйлдлүүд хийж, тодорхой утгыг буцаана. Энэ утга дараа нь үүссэн squareArray руу орно

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

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

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

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

Мөн бид JavaScript массивын уртыг авч болно:

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

Өө! Бид хоёр жимс, илжиг бүхий массив бүтээсэн. Одоо бид илжигийг зайлуулах хэрэгтэй.

поп болон түлхэх аргууд

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

Дараах жишээ нь массиваас "Илжиг"-ийг хэрхэн татаж байгааг харуулж байна:

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

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

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

var fruits = ["Алим", "Улбар шар"] fruits.push("Тор"); // одоо бидэнд ["Алим", "Улбар шар", "Тор"] дохио байна("Сүүлийн элемент:"+жимс)

  1. Элементүүдтэй загварын массив үүсгэх " Жазз”, “Блюз”;
  2. "Утга нэмэх" Рокн ролл«;
  3. Төгсгөлийн хоёр дахь утгыг "утгаар солино. Сонгодог". Та массиваар төгсөх ёстой: " Жазз”, ”Сонгодог”, ”Рокн ролл" Код нь ямар ч массивын уртад ажиллах ёстой;
  4. Массиваас сүүлчийн утгыг гаргаж аваад дохиогоор харуулна уу.

Шийдэл

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

Шилжүүлэх/шилжүүлэх аргууд

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

var fruits = ["Алим", "Улбар шар"] var алим = fruits.shift() // одоо бидэнд зөвхөн ["Улбар шар"] fruits.unshift("Нимбэг") байна // одоо бидэнд ["Нимбэг", " Улбар шар"] дохиолол (жимс. урт) // 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 арга байгаа эсэхийг шалгах нөхцөлөөр find тодорхойлох нь илүү ухаалаг хэрэг болно.

Өөрийгөө удирдах даалгавар

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

Энэ хэрхэн ажиллах ёстойг харуулсан жишээ:

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

Шийдэл

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

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

Заримдаа танд JavaScript массивыг мөр болгон хөрвүүлэх хурдан арга хэрэг болдог. Нэгдэх арга нь үүнд зориулагдсан юм.

Энэ нь өгөгдсөн хязгаарлагчийг ашиглан массивыг мөр болгон нэгтгэдэг:

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

Урвуу хувиргалтыг хуваах аргыг ашиглан хялбархан хийж болно:

var fruits = "Алим, жүрж, тоор"; var arr = fruits.split(","); // arr одоо ["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>=0 нөхцөлөөр төгсдөг. Учир нь i>=0 нь i-ээс хурдан шалгадаг. JavaScript-д байгаа зүйл нь массив дахь хайлтыг хурдасгадаг.

Массивыг тайрахдаа уртыг ашиглах

length шинж чанарыг ашигласнаар та массивыг дараах байдлаар тайрч болно.

Та уртыг зааж өгөх ба хөтөч нь массивыг тайруулна.

Массив бол объект, энэ нь юу гэсэн үг вэ?

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

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

Тоон бус массив түлхүүрүүд

Түлхүүрүүд нь тоо, гэхдээ тэдгээр нь ямар ч нэртэй байж болно:

arr = arr = 5 arr.prop = 10 // үүнийг бүү хий

JavaScript-д массивууд нь гүйцэтгэлийн давуу талтай боловч тодорхой сул талуудтай хэш хүснэгтүүд юм.

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

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

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

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


Тиймээс shift/unshift нь push/pop-оос удаан байдаг. Массив том байх тусам массивыг эрэмбэлэхийн тулд JavaScript илүү их хугацаа шаардагдана.

Өөрийгөө удирдах даалгавар

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

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

Шийдэл

Массивууд нь объект учраас arr ..нь үнэндээ obj гэх мэт объект дээрх арга дуудлага юм арга:

arr() // arr()-тай ижил // синтаксийн хувьд буруу, гэхдээ үзэл баримтлалын хувьд ижил: arr.2() // obj.method()-тай ижил хэв маягаар дахин бичсэн энэ = 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 (эсвэл үүнтэй төстэй зүйл)

Гэхдээ массив нь хоёр түлхүүртэй объект юм. Алга болсон үнэ цэнэ нь зай эзэлдэггүй.

Массив аргуудыг хэрэглэх үед сийрэг массивууд хачирхалтай ажилладаг. Индексүүд байхгүй байгааг тэд мэдэхгүй байна:

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

Сийрэг массиваас зайлсхийхийг хичээ. Ямар ч тохиолдолд тэдний аргууд хэвийн ажиллахгүй. Оронд нь Object-г ашиглана уу.

Массиваас хасаж байна

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

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 элемент хасагдсан)

Тиймээс та нэг элементийг массиваас хасахын тулд splice ашиглаж болно. Массивын элементийн дугаарыг зайг дүүргэхийн тулд шилжүүлнэ:

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 гэсэн захиалгыг авах болно. Учир нь энэ арга нь бүх зүйлийг тэмдэгт мөр болгон хувиргаж, анхдагчаар үг зүйн дарааллыг ашигладаг.