Welche Funktion hat der Filter in es6?

青灯夜游
Freigeben: 2023-01-29 14:41:08
Original
1200 Leute haben es durchsucht

In es6 filtert der Filter Array-Elemente und gibt ein neues Array zurück. Die Funktion filter() erstellt ein neues Array, das alle Elemente des Tests enthält, der über die bereitgestellte Rückruffunktion implementiert wird, die Syntax „arr.filter(callback(element[, index[, array]])[, thisArg])“; if If Bestehen keine Array-Elemente den Test, wird ein leeres Array zurückgegeben.

Welche Funktion hat der Filter in es6?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, ECMAScript Version 6, Dell G3-Computer.

filter in ES6

Filterfunktion wird allgemein als Filterfunktion bezeichnet: Array-Elemente filtern und ein neues Array zurückgeben;

filter()-Methode erstellt ein neues Array, das alle von Provides all übergebenen Elemente enthält Elemente des von der Funktion implementierten Tests.

var sexData=["男","女","女","男","女"];
var filter2=sexData.filter(function(sex){
	return sex==="女"
})

//console.log(filter2)    ["女", "女", "女"]
Nach dem Login kopieren
var porducts = [
	{name: 'apple',type: 'red'} ,
	{name: 'orange',type: 'orange'},
	{name: 'banana',type: 'yellow'},
	{name: 'mango',type: 'yellow'}
];
var filter2=porducts.filter(function(item){
	return item.type==='yellow'
})
//console.log(filter2)
//0: {name: "banana", type: "yellow"}1: {name: "mango", type: "yellow"}
Nach dem Login kopieren

Syntax

var newArray = arr.filter(
  callback(element[, index[, array]])[, thisArg]
)
Nach dem Login kopieren

Parameter

  • callback: Rückruffunktion

  • element: die im arr-Array verarbeiteten Daten

  • index: der Index des Elements, optional

  • Array: Das Array selbst, in dem der Filter aufgerufen wurde, optional

  • thisArg: Der dafür beim Ausführen des Rückrufs verwendete Wert, optional

Rückgabewert

  • Ein neues Array bestehend aus Elementen, die den Test bestanden haben, wenn keine Array-Elemente vorhanden sind Wenn Sie den Test bestehen, wird ein leeres Array zurückgegeben.

Description

  • Filter ruft die Callback-Funktion einmal für jedes Element im Array auf und erstellt ein neues Array mit allen Elementen, für die der Callback „true“ oder einen Wert zurückgibt, der „true“ entspricht. Callback wird nur für Indizes aufgerufen, denen Werte zugewiesen wurden, und nicht für Indizes, die gelöscht wurden oder denen nie Werte zugewiesen wurden. Elemente, die den Rückruftest nicht bestehen, werden übersprungen und nicht in das neue Array aufgenommen.

  • Drei Parameter werden übergeben, wenn der Rückruf aufgerufen wird: der Wert des Elements, der Index des Elements und das Array selbst, das durchlaufen wird.
    Wenn ein thisArg-Parameter für den Filter bereitgestellt wird, wird er als dieser Wert verwendet wenn ein Rückruf aufgerufen wird. Andernfalls ist dieser Wert des Rückrufs im nicht-strikten Modus das globale Objekt und im strikten Modus undefiniert. Der Wert von this, der schließlich von der Callback-Funktion beobachtet wird, wird gemäß den Regeln von „this“ bestimmt, die von der normalen Funktion gesehen werden.

  • filter ändert nicht das ursprüngliche Array, sondern gibt das neue gefilterte Array zurück.

  • filter Der Bereich der durchlaufenen Elemente wurde bestimmt, bevor der Rückruf zum ersten Mal aufgerufen wird. Elemente, die dem Array hinzugefügt werden, nachdem der Filter aufgerufen wurde, werden vom Filter nicht durchlaufen. Wenn vorhandene Elemente geändert wurden, sind die Werte, die sie an den Rückruf übergeben, die Werte in dem Moment, in dem der Filter sie durchläuft. Elemente, die gelöscht wurden oder denen nie ein Wert zugewiesen wurde, werden nicht durchlaufen.

Schiale Verwendung:

1. Entfernen Sie leere Zeichenfolgen, undefiniert, null

array.filter((value, index, arr) => {value})
Nach dem Login kopieren

2. Array Deduplication

array.filter((value, index, arr) => {arr.indexOf(value) === index})
Nach dem Login kopieren

example

1. json von Elementen mit IDs ungleich Null.

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
Nach dem Login kopieren

2. Leere Zeichenfolgen entfernen, undefiniert, null

//2. 去掉空字符串、undefined、null
var porducts = [
	{name:''},
	{name:"哈哈"}
];
var filter2=porducts.filter(function(item){
	return item.name
})
//console.log(filter2)    
//打印得出  0: {name: "哈哈"}
Nach dem Login kopieren

3. Duplikate aus Arrays entfernen

//3. 数组去重
array.filter((value, index, arr) => {arr.indexOf(value) === index})
var porducts = ['苹果','香蕉','苹果','芒果']
var filter2=porducts.filter(function(item,index,porducts){
	return porducts.indexOf(item)==index
})
//console.log(filter2)
// ["苹果", "香蕉", "芒果"]
Nach dem Login kopieren

[Empfohlenes Lernen:

Javascript-Tutorial für Fortgeschrittene

]

Das obige ist der detaillierte Inhalt vonWelche Funktion hat der Filter in es6?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage