Heim > Web-Frontend > js-Tutorial > Hauptteil

JavaScript: forEach, map, Arrow Functions, setTimeout, setInterval, filter, some, every und Reduce

WBOY
Freigeben: 2024-08-08 06:47:11
Original
340 Leute haben es durchsucht

JavaScript: forEach, map, Arrow Functions, setTimeout, setInterval, filter, some, every, and reduce

forEach-Methode

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

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`);
});
Nach dem Login kopieren

Karte

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

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

Pfeilfunktionen

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

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`;
});
Nach dem Login kopieren

Implizite Rückgaben

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

Timeout festlegen

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

Intervall festlegen

Wiederholt den Rückruf alle x Millisekunden

setInterval(() => {
  console.log(Math.random());
}, 2000);
Nach dem Login kopieren

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

Filtermethode

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

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

Einige und alle

  • Einige – testet, ob JEDES der Elemente in einem Array in der Rückruffunktion „true“ zurückgibt. Es gibt einen booleschen Wert zurück
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
Nach dem Login kopieren
  • Every – testet, ob ALLE Elemente in einem Array in der Rückruffunktion „true“ zurückgeben. Es gibt einen booleschen Wert zurück
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
Nach dem Login kopieren

Reduzieren

  • Das erste (und möglicherweise einzige) Argument beim Reduzieren einer Callback-Funktion.
    • Das erste Argument dieser Funktion ist ein Wert, der sich ändern kann, während wir jedes Element durchlaufen.
    • Das zweite Argument in dieser Funktion ist der Wert aus einem Index des Arrays.
  • Das optionale zweite Argument von Reduce ist der Wert, bei dem der erste Wert der Callback-Funktion beginnen soll.
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);
Nach dem Login kopieren

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

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

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!

Quelle:dev.to
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!