Home > Web Front-end > JS Tutorial > In-depth understanding of the filter() method in JavaScript (with code)

In-depth understanding of the filter() method in JavaScript (with code)

yulia
Release: 2018-09-14 15:46:42
Original
3346 people have browsed it

What this article brings to you is the filter() method in JavaScript, which is also widely used in JavaScript. It has certain reference value. Friends in need can refer to it. I hope it will help You helped.

The filter() method creates a new array containing all elements of the test implemented by the provided function.

var words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => word.length > 6);
console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]
Copy after login

Syntax

var array = arr.filter(function(item,index,array){})
// 一般都传一个参数
Copy after login

Return value

A new array of collections of elements that pass the test, if not The test returns an empty array

Description

filter calls the callback function once for each element in the array and uses all elements that cause the callback to return true or equivalent to true Create a new array with the elements of value. The callback function will only be called on indexes that have been assigned values, and will not be called on indexes that have been deleted or have never been assigned values. Elements that fail the callback function test will be skipped and will not be included in the new array.

filter The range of elements traversed has been determined before the callback function is called for the first time. Elements added to the array after calling filter will not be traversed by filter. If existing elements have been changed, the values ​​they pass into the callback function are the values ​​at the moment when filter traverses them. Elements that have been deleted or have never been assigned a value will not be traversed. (If you don’t understand, please read the forEach method written before)

Example

Filter and exclude all small values

//下例使用 filter 创建了一个新数组,该数组的元素由原数组中值大于 10 的元素组成。
function isBigEnough(element) {
  return element >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
Copy after login

Filter JSON Invalid entry

// 以下示例使用filter()创建具有非零id的json。
var arr = [
  { id: 15 },
  { id: -1 },
  { id: 0 },
  { id: 3 },
  { id: 12.2 },
  { },
  { id: null },
  { id: NaN },
  { id: 'undefined' }
];
var invalidEntries = 0;
function isNumber(obj) {
  return obj !== undefined && typeof(obj) === 'number' && !isNaN(obj);
} 
function filterByID(item) {
  if (isNumber(item.id) && item.id !== 0) {
    return true;
  } 
  invalidEntries++;
  return false; 
}
var 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
Copy after login

Search in array

// 下面的示例使用filter()根据搜索条件过滤数组内容
var fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];
/**
 * Array filters items based on search criteria (query)
 */
function filterItems(query) {
  return fruits.filter(function(el) {
      return el.toLowerCase().indexOf(query.toLowerCase()) > -1;
  })
}
console.log(filterItems('ap')); // ['apple', 'grapes']
console.log(filterItems('an')); // ['banana', 'mango', 'orange']
//如果输入的字母是不相连的,那么久得不到你想要的结果
console.log(filterItems('al'));// []
// 输出结果为空
Copy after login

The filter method is generally used to filter and filter.

If the filter method is not supported in some environments, then please visit the mdn website to solve the problem MDN Array.prototype.filter() method.

The above is the detailed content of In-depth understanding of the filter() method in JavaScript (with code). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template