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

เมธอด Array.filter() ใน JavaScript

Array.filter()

สร้าง Array ใหม่ที่มีเฉพาะสมาชิกที่ ผ่านเงื่อนไข (Return true) ไม่ Mutate Array ต้นฉบับ

ไวยากรณ์

arr.filter(callback(element[, index[, array]])[, thisArg])

ตัวอย่าง 1: กรองเงินเดือน ≥ 19000

<html> <body> <p id="demo"></p> <script>
  var salary = [2000, 30000, 69000, 70000, 78000];
  
  function checkSal(sal) {
    return sal >= 19000;
  }
  
  document.getElementById("demo").innerHTML = salary.filter(checkSal);
</script> </body> </html>

ผลลัพธ์: 30000,69000,70000,78000

ตัวอย่าง 2: กรองเฉพาะจำนวนบวก

<script>
  var numbers = [2, 3, 4, 5, -9, 0, -2, -5];
  var positive = numbers.filter(v => v > 0);
  document.write(positive); // 2,3,4,5
</script>

ตัวอย่าง 3: กรอง Object ใน Array

const users = [
  {name: 'John', age: 25, active: true},
  {name: 'Jane', age: 30, active: false},
  {name: 'Bob', age: 35, active: true}
];

const activeUsers = users.filter(u => u.active);
// [{name: 'John', age: 25, active: true}, {name: 'Bob', age: 35, active: true}]

หมายเหตุ

  • ไม่เปลี่ยน Array เดิม (Immutable)
  • คืน Array ใหม่เสมอ (อาจ Empty)
  • Chain ได้กับ map(), reduce() ฯลฯ