【JavaScript】2.3 Data processing and functional programming


JavaScript provides a wealth of data processing methods, especially in array operations and functional programming. In this chapter, we will learn some data processing techniques in JavaScript and basic concepts of functional programming.

Array operations

JavaScript arrays have many built-in methods that can be used to perform various data processing.

map

mapThe method returns a new array, each element in the array is the result of processing the original array elements through a function.

var numbers = [1, 2, 3, 4, 5];
var squares = numbers.map(function(x) {
    
    
  return x * x;
});
console.log(squares); // 输出:[1, 4, 9, 16, 25]

In this example, we use the map method to square each element in the numbers array to get a new array squares.

filter

filterThe method returns a new array whose elements are all elements in the original array that meet a certain condition.

var numbers = [1, 2, 3, 4, 5];
var evens = numbers.filter(function(x) {
    
    
  return x % 2 === 0;
});
console.log(evens); // 输出:[2, 4]

In this example, we use the filter method to filter out all the even numbers in the numbers array and get a new array< a i=3>. evens

reduce

reduceMethod performs a function on each element in the array, summarizing its results into a single output value.

var numbers = [1, 2, 3, 4, 5];
var sum = numbers.reduce(function(acc, x) {
    
    
  return acc + x;
}, 0);
console.log(sum); // 输出:15

In this example, we use the reduce method to calculate the sum of all elements in the numbers array and get a sumsum.

functional programming

Functional programming is a programming paradigm that treats the calculation process as the evaluation of functions. Functional programming emphasizes functions that have no side effects (pure functions) and do not change state (immutability). JavaScript supports some features of functional programming.

pure function

A pure function is a function that, given the same input, always returns the same output without any side effects.

function square(x) {
    
    
  return x * x;
}

console.log(square(5)); // 输出:25
console.log(square(5)); // 输出:25

In this example, the square function is a pure function. No matter how many times we call it, as long as the input is 5, the output will be 25.

higher order function

A higher-order function is a function that accepts a function as an argument or returns a function.

function greaterThan(n) {
    
    
  return function(m) {
    
    
    return m > n;
  };
}

var greaterThan10 = greaterThan(10);
console.log(greaterThan10(11)); // 输出:true

In this example, thegreaterThan function is a higher-order function. It returns a new function that checks whether a number is greater than n.

Closure

In JavaScript, functions can form closures. A closure is an entity composed of a function and its associated reference environment. Closures allow you to access the variables of an outer function from within an inner function.

function outer() {
    
    
  var x = 10;

  function inner() {
    
    
    console.log(x); // 可以访问到外层函数的变量x
  }

  return inner;
}

var innerFunc = outer();
innerFunc(); // 输出:10

In this example, the inner function forms a closure. It can access the variables in the outer functionx even if the outer function has completed execution.

Summarize

JavaScript’s data processing and functional programming features allow us to write more efficient and powerful code. By understanding and using the map, filter, and reduce methods of arrays, as well as the pure functions, higher-order functions, and closures of functional programming Packages, we can better master JavaScript and apply this knowledge in actual development.
Insert image description here

Guess you like

Origin blog.csdn.net/u010671061/article/details/134499642