¿Todavía no entiendes el filtro? "JavaScript" "Notas MDN"

contenido

1. filtro "filtrado" "¿qué es?"

Ejemplo: encontrar cadenas con una longitud superior a 6

gramática:

llamar de vuelta

Puntos de Atención

Población


1. filtro "filtrado" "¿qué es?"

El método filter() crea una nueva matriz que contiene todos los elementos que coinciden con la función dada.

Ejemplo: encontrar cadenas con una longitud superior a 6

const words = ['wangjiaran','yezhenkun','yewen','ryker','tom','baby'];
const result = words.filter(word => word.lenth > 6);
console.log(result);
// expected output: Array ["yezhenkun", "wangjiaran"]

gramática:

var newArray = arr.filter(callback(element[,index[,array])[,thisarg])

llamar de vuelta

1. Una función para probar cada elemento de una matriz. Devuelve verdadero si el elemento pasa la prueba y mantiene el elemento, falso si no lo hace. Acepta los tres parámetros siguientes: 
 2. elemento "el elemento que se procesa actualmente en la matriz". índice "el índice del elemento que se procesa en la matriz". matriz "la matriz misma que llamó filtro". 
 3. thisArg "cuando la devolución de llamada se ejecuta, por el valor de esto".

Puntos de Atención

1. Si se proporciona un parámetro thisArg para el filtro, se usará como valor this cuando se llame a la devolución de llamada. 
De lo contrario, el valor this de la devolución de llamada será el objeto global en modo no estricto e 
indefinido en modo estricto. 
2 El rango de elementos atravesados ​​por el filtro Esto se determina antes de la primera llamada a devolución de llamada. 
Los elementos agregados a la matriz después de llamar al filtro no serán atravesados ​​por el filtro. 
Si se han cambiado los elementos existentes, el valor que pasan a la devolución de llamada es el valor en el momento en que el filtro los atravesó. Los elementos que se eliminan o nunca se les asigna un valor no se recorren.

Población

1. Filtrar para excluir todos los valores más pequeños

function isBigEnough(x) {
    return x > 10;
}
var arr = [1,2,3,4,5,123,322,9,54,67].filter(isBigEnough);
// console.log(arr);
// filter is[123,322,54,67];

2. Filtra entradas no válidas en JSON

// 过滤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

Supongo que te gusta

Origin blog.csdn.net/weixin_60789461/article/details/123283397
Recomendado
Clasificación