forEach wird zum Durchlaufen von Arrays verwendet. Hier ist ein einfaches Beispiel:
const numbers = [1, 2, 3, 4, 5, 6, 7]; numbers.forEach(function (el) { if (el % 2 === 0) { console.log(el); } });
Nun verwenden wir forEach mit einem Array von Objekten:
const movies = [ { title: 'Indiana Jones', score: 77, }, { title: 'Star Trek', score: 94, }, { title: 'Deadpool', score: 79, }, ]; movies.forEach(function (movie) { console.log(`${movie.title} - ${movie.score}/100`); });
Map erstellt ein neues Array mit den Ergebnissen des Aufrufs eines Rückrufs für jedes Element im Array.
Lassen Sie uns zunächst über ein Basisarray iterieren:
const lCase = ['jim', 'bob', 'abby']; const uCase = lCase.map(function (t) { return t.toUpperCase(); }); console.log(lCase, uCase);
Lassen Sie uns nun über ein Array von Objekten iterieren:
const movies = [ { title: 'Indiana Jones', score: 77, }, { title: 'Star Trek', score: 94, }, { title: 'Deadpool', score: 79, }, ]; const titles = movies.map(function (movie) { return movie.title; }); console.log(titles);
Wir können Pfeilfunktionen wie folgt schreiben, um unsere Syntax zu vereinfachen:
const square = (x) => { return x * x; }; const sum = (x, y) => { return x + y; }; const rollDie = () => { return Math.floor(Math.random() * 6) + 1; }; console.log(square(2), sum(2, 3)); console.log(rollDie());
Wir können uns auch das Filmbeispiel noch einmal ansehen und eine Pfeilfunktion verwenden:
const movies = [ { title: 'Indiana Jones', score: 77, }, { title: 'Star Trek', score: 94, }, { title: 'Deadpool', score: 79, }, ]; const newMovies = movies.map((movie) => { return `${movie.title} = ${movie.score} / 10`; });
Implizite Rückgaben sind eine weitere Kurzform zum Schreiben von Funktionen. Einige Beispiele sind:
const rollDie = () => Math.floor(Math.random() * 6) + 1; const isEven = (num) => num % 2 === 0;
Führt den Rückruf nach x Millisekunden aus
console.log('Apears 1st'); // takes callback, then milliseconds setTimeout(() => { console.log('Apears 3rd'); }, 3000); console.log('Apears 2nd');
Wiederholt den Rückruf alle x Millisekunden
setInterval(() => { console.log(Math.random()); }, 2000);
Wenn wir den Rückruf irgendwann stoppen möchten, können wir Folgendes tun:
const id = setInterval(() => { console.log(Math.random()); }, 2000); clearInterval(id); // stops the loop
Filter erstellt ein neues Array mit den Elementen, die innerhalb der Rückruffunktion „true“ übergeben
const nums = [9, 8, 7, 6, 5, 4, 3, 2, 1]; const odds = nums.filter((n) => { return n % 2 === 1; // our callback returns true or false // if it returns true, n is added to the filtered array }); // [9, 7, 5, 3, 1] const smallNums = nums.filter((n) => n < 5); // [4, 3, 2, 1]
Wir können auch Objekte in einem Array filtern:
const movies = [ { title: 'Indiana Jones', score: 77, }, { title: 'Star Trek', score: 94, }, { title: 'Deadpool', score: 79, }, ]; const badMovies = movies.filter((movie) => { return movie.score < 80; }); console.log(badMovies);
const firstWords = ['dog', 'jello', 'log', 'bag', 'wag', 'cupcake']; words.some((word) => { return word.length > 4; }); // true words.some((word) => word[0] === 'Z'); // false words.some((word) => word.includes('cake')); // true
const words = ['dog', 'dig', 'log', 'bag', 'wag']; words.every((word) => { return word.length === 3; }); // true words.every((word) => word[0] === 'd'); // false words.every((w) => { return w[w.length - 1] === 'g'; }); // true
const prices = [9.99, 1.5, 19.99, 49.99, 30.5]; const total = prices.reduce((total, price) => { return total + price; }); const min = prices.reduce((min, price) => { return Math.min(min, price); }); console.log(min);
Wir können dies auch mit einem Array von Objekten tun:
const movies = [ { title: 'Indiana Jones', score: 77, }, { title: 'Star Trek', score: 94, }, { title: 'Deadpool', score: 79, }, ]; let bestMovie = movies.reduce((best, movie) => { if (movie.score > best.score) { return movie; } return best; }); console.log(bestMovie);
Wir können auch den Anfangswert des Reduzierers festlegen:
let nums = [1, 2, 3, 4, 5]; let maxPlus100 = nums.reduce((max, num) => { return (max += num); }, 100); console.log(maxPlus100); // 115
Das obige ist der detaillierte Inhalt vonJavaScript: forEach, map, Arrow Functions, setTimeout, setInterval, filter, some, every und Reduce. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!