Domine la herramienta front-end: análisis y uso práctico de métodos de representación de páginas JavaScript de alto nivel

introducción

En el desarrollo front-end, la velocidad y la calidad de la representación de la página son criterios importantes para medir el nivel de un desarrollador. Entre las muchas tecnologías de front-end, JavaScript ocupa el primer lugar por sus potentes capacidades de representación de páginas. Este artículo profundizará en la aplicación de JavaScript en la representación de páginas y demostrará sus métodos de alto nivel a través de ejemplos, con el objetivo de ayudar a los lectores a dominar mejor la tecnología front-end.

La importancia de JavaScript en la representación de páginas

JavaScript ha sido un lenguaje de programación poderoso desde su creación, que permite a los desarrolladores manipular el DOM (modelo de objetos de documento) del navegador para cambiar el contenido y el estilo de las páginas web. A través de JavaScript podemos implementar contenidos dinámicos, efectos interactivos, aplicaciones de una sola página (SPA), etc.

Con el desarrollo de la tecnología front-end, el papel de JavaScript también se está expandiendo. Ahora, no es sólo una herramienta para la representación de páginas, sino también un medio para crear aplicaciones front-end complejas. Por lo tanto, dominar los métodos de alto nivel de representación de páginas JavaScript es crucial para los desarrolladores de aplicaciones para el usuario.

Análisis de métodos de alto orden.

Las funciones de orden superior son un concepto importante en JavaScript y se refieren a funciones que aceptan funciones como parámetros o devuelven funciones. En la representación de páginas, las funciones de orden superior también se utilizan ampliamente.

mapa(), reducir() y filtrar()

Estas tres funciones son funciones de orden superior comúnmente utilizadas en matrices. Ambos aceptan una función como argumento y devuelven una nueva matriz.

  • map(): Se utiliza para convertir cada elemento de la matriz en un nuevo elemento mediante una función y devolver una nueva matriz.
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(number => number * 2); // [2, 4, 6, 8, 10]
  • filter(): Se utiliza para filtrar elementos en una matriz que cumplen condiciones específicas y devolver una nueva matriz.
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(number => number % 2 === 0); // [2, 4]
  • reduce(): Se utiliza para acumular elementos en una matriz a través de una función y devolver un único resultado.
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, number) => accumulator + number, 0); // 15

Ordenar por()

sortBy()La función se utiliza para ordenar los elementos de una matriz según un atributo determinado. Acepta una función como parámetro, que define la intercalación.

const people = [
  {
    
     name: 'Alice', age: 25 },
  {
    
     name: 'Bob', age: 20 },
  {
    
     name: 'Charlie', age: 30 }
];
const sortedPeople = people.sortBy(person => person.age); // [{ name: 'Bob', age: 20 }, { name: 'Alice', age: 25 }, { name: 'Charlie', age: 30 }]

find(), findIndex() e include()

Estas tres funciones se utilizan para buscar elementos en una matriz.

  • find(): Devuelve el primer elemento que cumple determinadas condiciones.
  • findIndex(): Devuelve el índice del primer elemento que cumple una condición específica.
  • includes(): determina si una matriz contiene un valor específico.
const numbers = [1, 2, 3, 4, 5];
const foundNumber = numbers.find(number => number > 3); // 4
const foundIndex = numbers.findIndex(number => number > 3); // 3
const containsFour = numbers.includes(4); // true

Caso práctico de métodos de alto orden: clasificación y filtrado dinámico de tablas

Demostremos la aplicación de métodos de orden superior a través de un caso de clasificación y filtrado dinámico de tablas. Supongamos que tenemos una tabla, cada fila representa un usuario y cada columna representa los atributos del usuario (como nombre, edad, etc.). Los usuarios pueden ordenar y filtrar por diferentes atributos.

preparación de datos

Primero, necesitamos preparar algunos datos del usuario. Aquí usamos una matriz que contiene múltiples objetos de usuario para representar la fuente de datos. Cada objeto de usuario contiene atributos como nombre, edad, etc.

const users = [
  {
    
     name: 'Alice', age: 25 },
  {
    
     name: 'Bob', age: 20 },
  {
    
     name: 'Charlie', age: 30 },
  // ...更多用户数据...
];

Implementación de funciones de clasificación y filtrado de encabezados.

A continuación, utilizamos funciones de orden superior para implementar las funciones de clasificación y filtrado del encabezado de la tabla. Aquí usamos la función sortBy()and filter()para lograr esto. Cuando el usuario hace clic en el encabezado de la tabla, ordenamos los datos del usuario según los atributos correspondientes al encabezado de la tabla; cuando el usuario selecciona las condiciones del filtro, filtramos los datos del usuario según las condiciones del filtro. Aquí está el código JavaScript que implementa esta funcionalidad:

// 获取表格元素
const table = document.getElementById('users-table');

// 获取表头元素
const headers = table.getElementsByTagName('th');

// 为每个表头添加点击事件
for (let header of headers) {
    
    
  header.addEventListener('click', function () {
    
    
    const property = header.dataset.property; // 获取表头对应的属性

    // 对用户数据进行排序
    users.sort((a, b) => {
    
    
      if (a[property] < b[property]) {
    
    
        return -1;
      } else if (a[property] > b[property]) {
    
    
        return 1;
      } else {
    
    
        return 0;
      }
    });

    // 重新渲染表格
    renderTable(users);
  });
}

// 筛选功能(根据年龄筛选)
const ageSelect = document.getElementById('age-select');
ageSelect.addEventListener('change', function () {
    
    
  const age = ageSelect.value; // 获取筛选条件(年龄)

  // 对用户数据进行筛选
  users = users.filter(user => user.age === age);

  // 重新渲染表格
  renderTable(users);
});

// 渲染表格的函数
function renderTable(users) {
    
    
  const tbody = document.getElementById('users-tbody');
  tbody.innerHTML = ''; // 清空原有的表格数据

  // 遍历用户数据,为每个用户创建一个表格行(tr)
  users.forEach(user => {
    
    
    const row = document.createElement('tr');
    row.innerHTML = `
      <td>${
      
      user.name}</td>
      <td>${
      
      user.age}</td>
    `;
    tbody.appendChild(row); // 将表格行添加到表格中
  });
}

En el código anterior, primero obtenemos el elemento de tabla y el elemento de encabezado que contienen datos del usuario y agregamos un evento de clic a cada encabezado. Cuando el usuario hace clic en el encabezado, ordenamos los datos del usuario según los atributos correspondientes al encabezado y utilizamos sort()métodos para ordenar en orden ascendente o descendente. Luego, volvemos a renderizar la tabla y mostramos los datos de usuario ordenados en la tabla. Además, implementamos una función de filtrado que permite a los usuarios filtrar los datos del usuario según la edad. Cuando el usuario selecciona una edad, filtramos los datos del usuario según la edad seleccionada y volvemos a representar la tabla para mostrar los datos del usuario filtrados en la tabla. Finalmente, definimos una renderTable()función que vuelve a representar la tabla en función de los datos del usuario actual. En la función, borramos los datos de la tabla original y utilizamos forEach()el método para recorrer los datos del usuario, crear una fila de la tabla (tr) para cada usuario y agregar la fila al elemento tbody de la tabla.


Esta vez el resumen del artículo se deja en manos de los lectores inteligentes.

Supongo que te gusta

Origin blog.csdn.net/weixin_46254812/article/details/132632384
Recomendado
Clasificación