Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

วิธีเข้าถึง Method ของ Array of Objects ใน JavaScript

ตัวอย่าง: ใช้เมธอด join() กับ Array ของ String

แม้ชื่อบทความจะว่า "Array of Objects" แต่ตัวอย่างใช้ Array ของ String และเรียก Method join() ของ Array

ตัวอย่างโค้ด

<html>
<head>
  <title>JavaScript Array join Method</title>
</head>
<body>
  <script>
    var arr = new Array("First", "Second", "Third");
    var str = arr.join();
    document.write("str : " + str);
    var str = arr.join(", ");
    document.write("<br />str : " + str);
  </script>
</body>
</html>

ผลลัพธ์

str : First,Second,Third
str : First, Second, Third

คำอธิบาย join()

arr.join(separator) รวม Element ทั้งหมดใน Array ให้เป็น String เดียว

  • separator (Optional): String ใช้คั่นระหว่าง Element (Default: ",")
  • คืนค่า: String

ตัวอย่าง Array of Objects จริงๆ

ถ้ามี Array ของ Object และต้องการเข้าถึง Method/Property ของแต่ละ Object:

const users = [
  { name: 'John', age: 30, greet() { return `Hi, I'm ${this.name}`; } },
  { name: 'Jane', age: 25, greet() { return `Hi, I'm ${this.name}`; } }
];

// เรียก Method ของแต่ละ Object
users.forEach(user => console.log(user.greet()));
// Hi, I'm John
// Hi, I'm Jane

// ดึง Property เฉพาะ
const names = users.map(user => user.name); // ['John', 'Jane']
const adults = users.filter(user => user.age >= 18);

เมธอด Array ที่ใช้กับ Array of Objects บ่อย

Method ใช้ทำอะไร ตัวอย่าง
map()แปลงแต่ละ Object ให้เป็นค่าใหม่users.map(u => u.name)
filter()กรอง Object ตามเงื่อนไขusers.filter(u => u.age > 18)
find()หา Object แรกที่ตรงเงื่อนไขusers.find(u => u.id === 5)
forEach()วนลูปทำงานแต่ละ Objectusers.forEach(u => console.log(u))
reduce()สะสมค่าจากทุก Objectusers.reduce((sum, u) => sum + u.age, 0)
some()เช็คว่ามี Object ไหนตรงเงื่อนไขไหมusers.some(u => u.isAdmin)
every()เช็คว่าทุก Object ตรงเงื่อนไขไหมusers.every(u => u.active)

สรุป

Array ของ Objects ใช้เมธอด Array มาตรฐาน (map, filter, find, forEach, reduce) เพื่อเข้าถึง Property/Method ของแต่ละ Object ได้อย่างมีประสิทธิภาพ