filter 基本語法
array.filter(function(item, index, array) {
return 條件;
});
三個參數代表什麼?
| 參數 | 一句話解釋 |
|---|---|
| item | 目前正在檢查的元素 |
| index | 目前元素的位置(索引值) |
| array | 原本的整個陣列 |
filter() 就像是在挑水果:
let fruits = ["蘋果", "香蕉", "葡萄", "西瓜"];
符合條件的留下
["蘋果","葡萄"]
let products = [
"蘋果",
"香蕉",
"葡萄",
"蘋果汁"
];
let result = products.filter(function(item) {
return item.includes("蘋果");
});
console.log(result);
// (2) ['蘋果', '蘋果汁']
補充:
includes() 是 JavaScript 用來判斷是否包含某個值的方法,有就回傳 true,沒有就回傳 false
let fruits = ["蘋果", "香蕉", "葡萄"];
console.log(fruits.includes("香蕉")); // true
console.log(fruits.includes("西瓜")); // false
let students = [
{ name: "小明", score: 90 },
{ name: "小華", score: 45 },
{ name: "小美", score: 80 }
];
let pass = students.filter(function(student) {
return student.score >= 60;
});
console.log(pass);
//輸出
[
{ name: "小明", score: 90 },
{ name: "小美", score: 80 }
]
let products = [
{ name: "滑鼠", price: 500 },
{ name: "鍵盤", price: 1800 },
{ name: "耳機", price: 900 }
];
let cheap = products.filter(function(item) {
return item.price <= 1000;
});
console.log(cheap);
//輸出
[
{name: '滑鼠', price: 500},
{name: '耳機', price: 900}
]
let todos = [
{ task: "買牛奶", done: true },
{ task: "寫程式", done: false },
{ task: "運動", done: false }
];
let undone = todos.filter(function(todo) {
return !todo.done;
});
console.log(undone);
//輸出
[
{task: '寫程式', done: false},
{task: '運動', done: false}
]
let users = [
{ name: "Tom", active: true },
{ name: "Amy", active: false },
{ name: "John", active: true }
];
let activeUsers = users.filter(function(user) {
return user.active;
});
console.log(activeUsers);
//輸出
[
{name: 'Tom', active: true},
{name: 'John', active: true}
]