Maison > interface Web > js tutoriel > JavaScript : forEach, map, Arrow Functions, setTimeout, setInterval, filter, some, each et réduire

JavaScript : forEach, map, Arrow Functions, setTimeout, setInterval, filter, some, each et réduire

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2024-08-08 06:47:11
original
409 Les gens l'ont consulté

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

méthode forEach

forEach est utilisé pour parcourir les tableaux. Voici un exemple simple :

const numbers = [1, 2, 3, 4, 5, 6, 7];

numbers.forEach(function (el) {
  if (el % 2 === 0) {
    console.log(el);
  }
});
Copier après la connexion

Utilisons maintenant forEach avec un tableau d'objets :

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`);
});
Copier après la connexion

Carte

Map crée un nouveau tableau avec les résultats de l'appel d'un rappel sur chaque élément du tableau.

Tout d'abord, parcourons un tableau de base :

const lCase = ['jim', 'bob', 'abby'];
const uCase = lCase.map(function (t) {
  return t.toUpperCase();
});

console.log(lCase, uCase);
Copier après la connexion

Maintenant, parcourons un tableau d'objets :

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);
Copier après la connexion

Fonctions des flèches

Nous pouvons écrire les fonctions fléchées comme suit pour simplifier notre syntaxe :

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());
Copier après la connexion

On peut également revisiter l'exemple du film et utiliser une fonction flèche :

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`;
});
Copier après la connexion

Retours implicites

Les retours implicites sont une autre façon abrégée d'écrire des fonctions, quelques exemples incluent :

const rollDie = () => Math.floor(Math.random() * 6) + 1;
const isEven = (num) => num % 2 === 0;
Copier après la connexion

Définir le délai d'attente

Exécute le rappel après x millisecondes

console.log('Apears 1st');
// takes callback, then milliseconds
setTimeout(() => {
  console.log('Apears 3rd');
}, 3000);

console.log('Apears 2nd');
Copier après la connexion

Définir l'intervalle

Répète le rappel toutes les x millisecondes

setInterval(() => {
  console.log(Math.random());
}, 2000);
Copier après la connexion

Si nous voulons éventuellement arrêter le rappel, nous pouvons faire ceci :

const id = setInterval(() => {
  console.log(Math.random());
}, 2000);

clearInterval(id); // stops the loop
Copier après la connexion

Méthode de filtrage

Le filtre crée un nouveau tableau avec les éléments qui transmettent return true dans la fonction de rappel

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]
Copier après la connexion

Nous pouvons également filtrer les objets dans un tableau :

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);
Copier après la connexion

Certains et tous

  • Certains - teste si l'un des éléments d'un tableau renvoie vrai dans la fonction de rappel. Il renvoie un booléen
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
Copier après la connexion
  • Every - teste si TOUS les éléments d'un tableau renvoient vrai dans la fonction de rappel. Il renvoie un booléen
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
Copier après la connexion

Réduire

  • Le premier (et potentiel seul) argument de la réduction d'une fonction de rappel.
    • Le premier argument de cette fonction est une valeur qui est susceptible de changer au fur et à mesure que nous parcourons chaque élément.
    • Le deuxième argument de cette fonction est la valeur d'un index du tableau.
  • Le deuxième argument facultatif de réduire est la valeur à laquelle nous voulons que la première valeur de la fonction de rappel commence.
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);
Copier après la connexion

Nous pouvons également le faire avec un tableau d'objets :

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);
Copier après la connexion

On peut également définir la valeur initiale du réducteur :

let nums = [1, 2, 3, 4, 5];

let maxPlus100 = nums.reduce((max, num) => {
  return (max += num);
}, 100);

console.log(maxPlus100); // 115
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal