Hướng dẫn how do you filter an element in javascript? - làm thế nào để bạn lọc một phần tử trong javascript?

Phương pháp filter() tạo ra một bản sao nông của một phần của một mảng đã cho, được lọc xuống chỉ các phần tử từ mảng đã cho vượt qua thử nghiệm được thực hiện bởi hàm được cung cấp.filter() method creates a shallow copy of a portion of a given array, filtered down to just the elements from the given array that pass the test implemented by the provided function.

Thử nó

Cú pháp

// Arrow function
filter((element) => { /* … */ })
filter((element, index) => { /* … */ })
filter((element, index, array) => { /* … */ })

// Callback function
filter(callbackFn)
filter(callbackFn, thisArg)

// Inline callback function
filter(function (element) { /* … */ })
filter(function (element, index) { /* … */ })
filter(function (element, index, array) { /* … */ })
filter(function (element, index, array) { /* … */ }, thisArg)

Thông số

callbackFn

Một hàm để thực thi cho mỗi phần tử trong mảng. Nó sẽ trả về một sự thật để giữ phần tử trong mảng kết quả và giá trị giả.

Hàm được gọi với các đối số sau:

function isBigEnough(value) {
  return value >= 10;
}

const filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
0

Phần tử hiện tại được xử lý trong mảng.

function isBigEnough(value) {
  return value >= 10;
}

const filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
1

Chỉ số của phần tử hiện tại được xử lý trong mảng.

function isBigEnough(value) {
  return value >= 10;
}

const filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
2

Mảng filter() đã được kêu gọi.

function isBigEnough(value) {
  return value >= 10;
}

const filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
4 Tùy chọnOptional

Giá trị để sử dụng là

function isBigEnough(value) {
  return value >= 10;
}

const filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
5 khi thực hiện callbackFn. Xem phương pháp lặp.

Giá trị trả về

Một bản sao nông của một phần của mảng đã cho, được lọc xuống chỉ các phần tử từ mảng đã cho vượt qua thử nghiệm được thực hiện bởi hàm được cung cấp. Nếu không có phần tử nào vượt qua bài kiểm tra, một mảng trống sẽ được trả về.

Sự mô tả

Phương pháp filter() là một phương pháp lặp. Nó gọi hàm ____99 được cung cấp một lần cho mỗi phần tử trong một mảng và xây dựng một mảng mới của tất cả các giá trị mà callbackFn trả về giá trị sự thật. Các phần tử mảng không vượt qua bài kiểm tra callbackFn không được bao gồm trong mảng mới.

callbackFn chỉ được gọi cho các chỉ mục mảng đã gán các giá trị. Nó không được gọi cho các khe trống trong các mảng thưa thớt.

Phương pháp filter() là một phương thức sao chép. Nó không thay đổi

function isBigEnough(value) {
  return value >= 10;
}

const filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
5 mà thay vào đó trả về một bản sao nông chứa các phần tử giống như các phần tử từ mảng gốc (với một số được lọc ra). Tuy nhiên, chức năng được cung cấp là callbackFn có thể làm biến đổi mảng. Tuy nhiên, lưu ý rằng độ dài của mảng được lưu trước khi gọi đầu tiên của callbackFn. Vì vậy:

  • callbackFn sẽ không truy cập bất kỳ yếu tố nào được thêm vào ngoài độ dài ban đầu của mảng khi cuộc gọi đến filter() bắt đầu.
  • Các thay đổi đối với các chỉ mục đã được truy cập không khiến callbackFn được gọi lại trên chúng.
  • Nếu một phần tử hiện có, chưa được liên kết của mảng được thay đổi bởi callbackFn, giá trị của nó được chuyển cho callbackFn sẽ là giá trị tại thời điểm phần tử đó được truy cập. Các yếu tố bị xóa không được truy cập.

CẢNH BÁO: Sửa đổi đồng thời của loại được mô tả ở trên thường xuyên dẫn đến mã khó hiểu và thường được tránh (ngoại trừ trong các trường hợp đặc biệt). Concurrent modifications of the kind described above frequently lead to hard-to-understand code and are generally to be avoided (except in special cases).

Phương pháp filter() là chung chung. Nó chỉ mong đợi giá trị

function isBigEnough(value) {
  return value >= 10;
}

const filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
5 có thuộc tính
const arr = [
  { id: 15 },
  { id: -1 },
  { id: 0 },
  { id: 3 },
  { id: 12.2 },
  {},
  { id: null },
  { id: NaN },
  { id: 'undefined' },
];

let invalidEntries = 0;

function filterByID(item) {
  if (Number.isFinite(item.id) && item.id !== 0) {
    return true;
  }
  invalidEntries++;
  return false;
}

const arrByID = arr.filter(filterByID);

console.log('Filtered Array\n', arrByID);
// Filtered Array
// [{ id: 15 }, { id: -1 }, { id: 3 }, { id: 12.2 }]

console.log('Number of Invalid Entries = ', invalidEntries);
// Number of Invalid Entries = 5
3 và các thuộc tính được khóa.

Ví dụ

Lọc ra tất cả các giá trị nhỏ

Ví dụ sau sử dụng filter() để tạo một mảng được lọc có tất cả các phần tử có giá trị nhỏ hơn

const arr = [
  { id: 15 },
  { id: -1 },
  { id: 0 },
  { id: 3 },
  { id: 12.2 },
  {},
  { id: null },
  { id: NaN },
  { id: 'undefined' },
];

let invalidEntries = 0;

function filterByID(item) {
  if (Number.isFinite(item.id) && item.id !== 0) {
    return true;
  }
  invalidEntries++;
  return false;
}

const arrByID = arr.filter(filterByID);

console.log('Filtered Array\n', arrByID);
// Filtered Array
// [{ id: 15 }, { id: -1 }, { id: 3 }, { id: 12.2 }]

console.log('Number of Invalid Entries = ', invalidEntries);
// Number of Invalid Entries = 5
5 bị xóa.

function isBigEnough(value) {
  return value >= 10;
}

const filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]

Tìm tất cả các số nguyên tố trong một mảng

Ví dụ sau trả về tất cả các số nguyên tố trong mảng:

const array = [-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];

function isPrime(num) {
  for (let i = 2; num > i; i++) {
    if (num % i === 0) {
      return false;
    }
  }
  return num > 1;
}

console.log(array.filter(isPrime)); // [2, 3, 5, 7, 11, 13]

Lọc các mục không hợp lệ từ JSON

Ví dụ sau đây sử dụng filter() để tạo JSON được lọc của tất cả các phần tử với số không, số

const arr = [
  { id: 15 },
  { id: -1 },
  { id: 0 },
  { id: 3 },
  { id: 12.2 },
  {},
  { id: null },
  { id: NaN },
  { id: 'undefined' },
];

let invalidEntries = 0;

function filterByID(item) {
  if (Number.isFinite(item.id) && item.id !== 0) {
    return true;
  }
  invalidEntries++;
  return false;
}

const arrByID = arr.filter(filterByID);

console.log('Filtered Array\n', arrByID);
// Filtered Array
// [{ id: 15 }, { id: -1 }, { id: 3 }, { id: 12.2 }]

console.log('Number of Invalid Entries = ', invalidEntries);
// Number of Invalid Entries = 5
7.

const arr = [
  { id: 15 },
  { id: -1 },
  { id: 0 },
  { id: 3 },
  { id: 12.2 },
  {},
  { id: null },
  { id: NaN },
  { id: 'undefined' },
];

let invalidEntries = 0;

function filterByID(item) {
  if (Number.isFinite(item.id) && item.id !== 0) {
    return true;
  }
  invalidEntries++;
  return false;
}

const arrByID = arr.filter(filterByID);

console.log('Filtered Array\n', arrByID);
// Filtered Array
// [{ id: 15 }, { id: -1 }, { id: 3 }, { id: 12.2 }]

console.log('Number of Invalid Entries = ', invalidEntries);
// Number of Invalid Entries = 5

Tìm kiếm trong mảng

Ví dụ sau sử dụng filter() để lọc nội dung mảng dựa trên tiêu chí tìm kiếm.

const fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];

/**
 * Filter array items based on search criteria (query)
 */
function filterItems(arr, query) {
  return arr.filter((el) => el.toLowerCase().includes(query.toLowerCase()));
}

console.log(filterItems(fruits, 'ap')); // ['apple', 'grapes']
console.log(filterItems(fruits, 'an')); // ['banana', 'mango', 'orange']

Sử dụng Filter () trên các mảng thưa thớt

filter() sẽ bỏ qua các khe trống.

console.log([1, , undefined].filter((x) => x === undefined)); // [undefined]
console.log([1, , undefined].filter((x) => x !== 2)); // [1, undefined]

Gọi bộ lọc () trên các đối tượng không phải là

Phương thức filter() đọc thuộc tính

const arr = [
  { id: 15 },
  { id: -1 },
  { id: 0 },
  { id: 3 },
  { id: 12.2 },
  {},
  { id: null },
  { id: NaN },
  { id: 'undefined' },
];

let invalidEntries = 0;

function filterByID(item) {
  if (Number.isFinite(item.id) && item.id !== 0) {
    return true;
  }
  invalidEntries++;
  return false;
}

const arrByID = arr.filter(filterByID);

console.log('Filtered Array\n', arrByID);
// Filtered Array
// [{ id: 15 }, { id: -1 }, { id: 3 }, { id: 12.2 }]

console.log('Number of Invalid Entries = ', invalidEntries);
// Number of Invalid Entries = 5
3 của
function isBigEnough(value) {
  return value >= 10;
}

const filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
5 và sau đó truy cập vào từng chỉ mục số nguyên.

const arrayLike = {
  length: 3,
  0: "a",
  1: "b",
  2: "c",
};
console.log(
  Array.prototype.filter.call(arrayLike, (x) => x <= "b"),
); // [ 'a', 'b' ]

Ảnh hưởng đến mảng ban đầu (sửa đổi, nối tiếp và xóa)

Ví dụ sau đây kiểm tra hành vi của phương thức

const fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];

/**
 * Filter array items based on search criteria (query)
 */
function filterItems(arr, query) {
  return arr.filter((el) => el.toLowerCase().includes(query.toLowerCase()));
}

console.log(filterItems(fruits, 'ap')); // ['apple', 'grapes']
console.log(filterItems(fruits, 'an')); // ['banana', 'mango', 'orange']
3 khi mảng được sửa đổi.

// Modifying each word
let words = ['spray', 'limit', 'exuberant', 'destruction', 'elite', 'present'];

const modifiedWords = words.filter((word, index, arr) => {
  arr[index + 1] += ' extra';
  return word.length < 6;
});

console.log(modifiedWords);
// Notice there are three words below length 6, but since they've been modified one is returned
// ["spray"]

// Appending new words
words = ['spray', 'limit', 'exuberant', 'destruction', 'elite', 'present'];
const appendedWords = words.filter((word, index, arr) => {
  arr.push('new');
  return word.length < 6;
})

console.log(appendedWords);
// Only three fits the condition even though the `words` itself now has a lot more words with character length less than 6
// ["spray" ,"limit" ,"elite"]

// Deleting words
words = ['spray', 'limit', 'exuberant', 'destruction', 'elite', 'present'];
const deleteWords = words.filter((word, index, arr) => {
  arr.pop();
  return word.length < 6;
})

console.log(deleteWords);
// Notice 'elite' is not even obtained as it's been popped off 'words' before filter can even get there
// ["spray" ,"limit"]

Thông số kỹ thuật

Sự chỉ rõ
Thông số kỹ thuật ngôn ngữ Ecmascript # sec-array.prototype.filter
# sec-array.prototype.filter

Tính tương thích của trình duyệt web

Bảng BCD chỉ tải trong trình duyệt

Xem thêm

Làm thế nào để bạn lọc các mục trong JavaScript?

Người ta có thể sử dụng hàm Filter () trong JavaScript để lọc mảng đối tượng dựa trên các thuộc tính. Hàm bộ lọc () sẽ trả về một mảng mới chứa tất cả các phần tử mảng vượt qua điều kiện đã cho. Nếu không có phần tử nào vượt qua điều kiện, nó sẽ trả về một mảng trống.use filter() function in JavaScript to filter the object array based on attributes. The filter() function will return a new array containing all the array elements that pass the given condition. If no elements pass the condition it returns an empty array.

Bộ lọc () trong JavaScript là gì?

Phương thức Filter () tạo ra một mảng mới chứa đầy các phần tử vượt qua thử nghiệm được cung cấp bởi một hàm. Phương thức Filter () không thực thi hàm cho các phần tử trống. Phương thức bộ lọc () không thay đổi mảng gốc.creates a new array filled with elements that pass a test provided by a function. The filter() method does not execute the function for empty elements. The filter() method does not change the original array.

Làm cách nào để lọc một phần tử div?

Nhận div cha mẹ và kiểm tra xem nó có div bên trong nó không ..
Nếu có, hãy sử dụng đệ quy để xác nhận chúng ..
Nếu không, hãy xác nhận chúng trực tiếp ..
Để xác thực, chấp nhận văn bản SearchQuery và Div và phân tích chúng vào chữ thường. Điều này sẽ cho phép bạn thực hiện tìm kiếm không nhạy cảm với trường hợp ..
Họ chỉ cần kiểm tra sự tồn tại của SearchQuery trong văn bản này ..

Làm thế nào để bạn lọc một chuỗi trong javascript?

Để lọc các chuỗi của một mảng dựa trên độ dài trong JavaScript, hãy gọi phương thức mảng.filter () trên mảng chuỗi này và truyền một hàm làm đối số trả về điều kiện cụ thể trên độ dài chuỗi hoặc sai.call Array. filter() method on this String Array, and pass a function as argument that returns true for the specific condition on string length or false otherwise.

Làm thế nào để bạn lọc một đối tượng?

Đối tượng JavaScript Không có phương thức Filter (), trước tiên bạn phải biến đối tượng thành một mảng để sử dụng phương thức bộ lọc của Array ().Bạn có thể sử dụng đối tượng.Hàm các phím () để chuyển đổi các phím của đối tượng thành một mảng và tích lũy các phím được lọc thành một đối tượng mới bằng cách sử dụng hàm giảm () như hiển thị bên dưới.turn the object into an array to use array's filter() method. You can use the Object. keys() function to convert the object's keys into an array, and accumulate the filtered keys into a new object using the reduce() function as shown below.

Làm thế nào để bạn lọc số nguyên trong JavaScript?

Chúng ta phải lọc các số nguyên trong một mảng được lưu trong biến const.const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];const squarelist = (mảng) => {"sử dụng nghiêm ngặt";const bình phương = mảng.bộ lọc ((num) => num> 0 && num % parseInt (num) === 0).Bản đồ ((num) => toán học.