JavaScript үндэс / Массив

Массив

Өнөөг хүртэл нэг хувьсагч — нэг утга гэсэн зарчмаар ажилласан. Харин бодит программд нэг биш, олон утгыг нэгэн зэрэг хадгалах шаардлага байдаг — сурагчдын нэрсийн жагсаалт, хичээлийн оноонууд, курсийн slug-ууд. Үүнд массив (array) ашиглана.

Массивыг дугаарлагдсан хайрцгуудын эгнээ гэж бодоорой. Хайрцаг бүр нэг утга хадгалж, 0-ээс эхлэн дугаарлагдана.

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

javascript
// Хоосон массив
const empty = [];

// Утгатай массив
const lessons = ["Хувьсагч", "Тоо", "Мөр", "Boolean"];
const scores = [88, 72, 95, 61, 84];
const mixed = ["Болд", 25, true, null]; // Янз бүрийн төрөл нэгд байж болно

Массивийн элементэд индексээр хандана. Индекс нь 0-ээс эхэлдгийг сайн санаарай.

javascript
const courses = ["JavaScript", "TypeScript", "Python"];

console.log(courses[0]); // "JavaScript" — эхний элемент
console.log(courses[1]); // "TypeScript" — хоёрдахь элемент
console.log(courses[2]); // "Python"     — гуравдахь элемент
console.log(courses[3]); // undefined    — байхгүй индекс

Нийтлэг шинж чанар ба методууд

length — элементийн тоо:

javascript
const scores = [88, 72, 95, 61, 84];

console.log(scores.length); // 5
console.log(scores[scores.length - 1]); // 84 — сүүлийн элемент

Элемент нэмэх:

javascript
const students = ["Болд", "Номин"];

students.push("Дорж"); // Сүүлд нэмнэ
console.log(students); // ["Болд", "Номин", "Дорж"]

students.unshift("Энх"); // Эхэнд нэмнэ
console.log(students); // ["Энх", "Болд", "Номин", "Дорж"]

Элемент хасах:

javascript
const fruits = ["алим", "гүйлс", "жүрж", "лийр"];

fruits.pop(); // Сүүлийнхийг хасна
console.log(fruits); // ["алим", "гүйлс", "жүрж"]

fruits.shift(); // Эхнийхийг хасна
console.log(fruits); // ["гүйлс", "жүрж"]

Массив хайх ба шалгах

javascript
const languages = ["JavaScript", "TypeScript", "Python", "Go"];

// includes — агуулж байна уу?
console.log(languages.includes("Python")); // true
console.log(languages.includes("Rust")); // false

// indexOf — байрлалыг олно (олдохгүй бол -1)
console.log(languages.indexOf("TypeScript")); // 1
console.log(languages.indexOf("Java")); // -1

// find — нөхцөлд тохирох эхний элементийг олно
const scores = [45, 72, 88, 55, 91];
const firstPass = scores.find((score) => score >= 70);
console.log(firstPass); // 72

Массив нэгтгэх ба хуулах

javascript
const front = ["HTML", "CSS", "JavaScript"];
const back = ["Node.js", "Python", "Go"];

// concat — нэгтгэнэ (шинэ массив үүсгэнэ)
const all = front.concat(back);
console.log(all);
// ["HTML", "CSS", "JavaScript", "Node.js", "Python", "Go"]

// Spread оператор — илүү орчин үеийн хэлбэр
const combined = [...front, ...back];
console.log(combined); // адил үр дүн

// slice — хэсгийг хуулна
const beginner = all.slice(0, 3); // 0-ээс 3 (3 орохгүй)
console.log(beginner); // ["HTML", "CSS", "JavaScript"]

Массивыг давтах

javascript
const lessons = [
  { title: "Хувьсагч", xp: 10 },
  { title: "Функц", xp: 20 },
  { title: "Closure", xp: 30 },
];

// forEach — бүх элементэд үйлдэл хийнэ, утга буцаадаггүй
lessons.forEach((lesson, index) => {
  console.log(`${index + 1}. ${lesson.title}${lesson.xp} XP`);
});
// 1. Хувьсагч — 10 XP
// 2. Функц — 20 XP
// 3. Closure — 30 XP

// Нийт XP
let totalXP = 0;
lessons.forEach((lesson) => {
  totalXP += lesson.xp;
});
console.log(`Нийт XP: ${totalXP}`); // Нийт XP: 60

Дараагийн хичээлд:

Массивын хамгийн хүчирхэг методуудыг судлана — map, filter, reduce ашиглан массивыг хэрхэн хувиргах, шүүх, нэгтгэхийг үзнэ.