อาเรย์ (array) เป็นจัดกลุ่มของข้อมูลไว้ด้วยกัน โดยครอบด้วย [ ] และคั่นข้อมูลแต่ละตัวด้วย , เช่น [‘text’, 12, 23.65, true] เป็นต้น ข้อมูลในอาเรย์อาจจะเป็นชนิดข้อมูลเดียวกันหรือต่างกันก็ได้ เรากำหนดอาเรย์ให้กับตัวแปรได้ ตามตัวอย่างด้านล่าง

let arrayVariable = [‘text’, 12, 23.65, true];
const arrayConstant = [65.69, 89.32, 78.86];

แต่ถึงแม้ว่าเราจะกำหนดอาเรย์ให้กับตัวแปรแบบ const สมาชิกในอาเรย์จะยังคงสามารถแก้ไขได้ โดย const จะมีผลกับการไม่สามารถกำหนดอาเรย์อื่นหรือชนิดข้อมูลอื่นให้กับตัวแปรอีกครั้ง

สมาชิกแต่ละตัวในอาเรย์จะมีตัวเลขกำกับเรียกว่าดัชนี (index) เพื่อให้เราใช้อ้างอิงถึงตำแหน่งข้อมูลที่ต้องการ โดยเริ่มจากดัชนี 0, 1 , 2 … X จากตัวอย่างด้านบน ดัชนี 0 คือ ‘text’, ดัชนี 1 คือ 12, ดัชนี 2 คือ 23.65, ดัชนี 3 คือ true เราสามารถเข้าถึงข้อมูลในแต่ละตำแหน่งด้วยตัวแปรอาเรย์และดัชนี เช่น arrayVariable[0],

let variableA = arrayVariable[0] // ตัวแปร variableA จะมีค่า ‘text’
console.log(arrayVariable[2]) // พิมพ์ 23.65

เราสามารถมองข้อความ (String) เป็นอาเรย์ของตัวอักษรได้ ดังนั้นเราสามารถเข้าถึงตัวอักษรแต่ละตัวได้ในทำนองเดียวกัน เช่น

const hello = ‘Hello World’
console.log(hello[4]); // พิมพ์ตัว o ดัชนีที่ 4

เราสามารถแก้ไขค่าในอาเรย์ได้โดยการกำหนดค่าใหม่ให้ในแต่ละดัชนี เช่น

let myLuckyNumber = [17, 89, 65, 100];
myLuckyNumber[0] = 66; //กำหนดค่าใหม่ให้ตำแหน่ง 0
console.log(myLuckyNumber); // พิมพ์ [66, 89, 65, 100]

เราสามารถตรวจสอบจำนวนสมาชิกในอาเรย์ได้โดยใช้คุณสมบัติ (property) length เช่น

let myLuckyNumber = [17, 89, 65, 100];
console.log(let myLuckyNumber.length); // พิมพ์ 4

เราเพิ่มข้อมูลในอาเรย์ด้วยเมธอด unshift(value1, value2, … , valueX) ซึ่งข้อมูลจะถูกเพิ่มที่ส่วนต้นของอาเรย์และเมธอด push(value1, value2, … , valueX) ซึ่งข้อมูลจะเพิ่มต่อท้ายอาเรย์ โดยระบุข้อมูลเป็นพารามิเตอร์ของเมธอดซึ่งสามารถระบุได้มากกว่าหนึ่ง ตัวอย่างเช่น

let items = [‘item1’, ‘item2’];
items.unshift(‘item0’);
console.log(items); // พิมพ์ [‘item0’, ‘item1’, ‘item2’]
items.push(‘item3’, ‘item4’);
console.log(items); // พิมพ์ [‘item0’, ‘item1’, ‘item2’, ‘item3’, ‘item4’]

เราลบสมาชิกออกจากอาเรย์ด้วยเมธอด shift ซึ่งจะลบข้อมูลที่ส่วนต้นของอาเรย์และเมธอด pop() ซึ่งจะลบข้อมูลท้ายสุดของอาเรย์ ทั้ง 2 เมธอดไม่มีพารามิเตอร์ ตัวอย่างเช่น

let items = [‘item0’, ‘item1’, ‘item2’];
items.shift();
console.log(items); // พิมพ์ [‘item1’, ‘item2’]
items.pop();
console.log(items); // พิมพ์ [‘item1’]

ถ้าเราต้องการสำเนาแค่บางส่วนของอาเรย์โดยไม่กระทบกับอาเรย์ต้นฉบับ (shallow copy) ทำได้โดยใช้เมธอด slice(start required index, next end required index) โดยกำหนดดัชนีตั้งต้นถึงดัชนีถัดจากดัชนีที่ต้องการ เช่น

let items = [‘item0’, ‘item1’, ‘item2’, ‘item3’, ‘item4’];
console.log(items.slice(1,3)); // พิมพ์ [‘item1’, ‘item2’]
console.log(items); // พิมพ์ [‘item0’, ‘item1’, ‘item2’, ‘item3’, ‘item4’]

หากเราต้องการทราบดัชนีของข้อมูล เราใช้เมธอด indexOf(value) โดยพารามิเตอร์คือข้อมูลที่ต้องการทราบค่าดัชนี เช่น

let items = [‘item0’, ‘item1’, ‘item2’, ‘item3’, ‘item4’];
console.log(items.indexOf(‘item3’)); // พิมพ์ 3

สำหรับเมธอดและคุณสมบัติอื่นๆของอาเรย์สามารถดูได้จาก https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

เนื่องจากสิ่งที่เก็บในอาเรย์คือตำแหน่งที่เก็บข้อมูลในหน่วยความจำไม่ใช่ข้อมูลจริงๆ ดังนั้นหากเราประกาศอาเรย์แล้วมีการแก้ไขอาเรย์ในฟังก์ชั่น ข้อมูลในอาเรย์ก็จะถูกแก้ไข เช่น

let items = [‘item0’, ‘item1’, ‘item2’, ‘item3’, ‘item4’];
function deleteLastItem(arr){
items.pop()
};
deleteLAstItem(items);
console.log(items); // พิมพ์ [‘item0’, ‘item1’, ‘item2’, ‘item3’];

เราสามารถเก็บอาเรย์ไว้ในอาเรย์ได้เรียกว่า nest array เช่น [1, 2, [3, 4], [5, 6]] จะเห็นว่า 3, 4 และ5, 6 อยู่ในอาเรย์ตัวในอีกทีหนึ่ง เราสามารถเข้าถึงข้อมูลของอาเรย์ในอาเรย์ได้ด้วยการระบุดัชนีของอาเรย์ตัวนอกตามด้วยดัชนีของอาเรย์ตัวใน โดยหลักการนับดัชนียังคงเหมือนเดิม เช่น

const nestArray = [1, 2, [3, 4], [5, 6]];
console.log(nestArray[0]); พิมพ์ 1
console.log(nestArray[2]); พิมพ์ [3, 4]
console.log(nestArray[3][0]); พิมพ์ 5

ถ้าเรามองอาเรย์เป็นมิติ อาเรย์ที่มีแต่ข้อมูลอย่างเดียวจะเป็นอาเรย์ 1 มิติคือมีแถวเดียวแต่หลายคอลัมภ์ เช่น [1, 2, 3, 4] ถ้าเราซ้อนอาเรย์เข้าไปอีกชั้นนึง เราจะได้อาเรย์ 2 มิติ คือ มีหลายแถวหลายคอลัมภ์ หรือมองว่าเป็นตารางก็ได้ เช่น [ [1, 2] , [3, 4] , [5, 6] , [7, 8] ] มองได้ว่าเป็นอาเรย์ที่มี 4 แถว 2 คอลัมภ์ และเราสามารถสร้างอาเรย์ 3 มิติได้โดยการซ้อนอาเรย์เข้าไปอีก เช่น const nestArray = [ [ [11, 12] , [21, 22] ] , [ [31, 32] , [41, 42] ] ]; การเข้าถึงข้อมูลของอาเรย์ 3 มิติคือการใช้ดัชนี 3 ตัวประกอบกัน เช่น

const nestArray = [[[11, 12], [21, 22]], [[31, 32], [41, 42]]];
console.log(nestArray[0][0][0]); พิมพ์ 11

เราสามารถซ้อนวงรอบได้เรียกว่า nested loops เช่น เราต้องการเปรียบเทียบสมาชิกของอาเรย์หนึ่งกับอีกอาเรย์หนึ่ง ดังตัวอย่าง เราเอาสมาชิกในแต่ละลำดับของอาเรย์ myArray ไปเปรียบเทียบกับสมาชิกในอาเรย์ yourArray โดยวงรอบนอกเราใช้ i เป็นดัชนีของอาเรย์ myArray และวงรอบในเราใช้ j เป็นดัชนีของอาเรย์ yourArray เริ่มจาก i มีค่าเป็น 0 จะเขาสู้วงรอบในที่ j มีค่า 0 และ 1 และ 2 จากนั้นจึงจบขั้นตอนของวงรอบในและกลับมาที่วงรอบนอกซึ่ง i จะถูกเพิ่มค่าเป็น 1 และเขาสู้วงรอบในต่อไปอีกครั้งจนครบตามเงื่อนไขที่กำหนดของทั้ง 2 วงรอบ

const myArray = [6, 19, 20];
const yourArray = [19, 81, 2];
for (let i = 0; i < myArray.length; i++) {
  for (let j = 0; j < yourArray.length; j++) {
    if (myArray[i] === yourArray[j]) {
      console.log(‘Both arrays have the number: ‘ + yourArray[j]);
    }
  }
}