Reorganizar Argumentos de Funções

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Neste laboratório, exploraremos a função rearg em JavaScript, que nos permite reorganizar a ordem dos argumentos passados a uma função com base em índices especificados. Aprenderemos como usar o método Array.prototype.map() e o operador spread para transformar os argumentos e invocar a função original com os argumentos reorganizados. Ao final deste laboratório, você terá uma boa compreensão de como usar a função rearg para manipular argumentos de funções em JavaScript.

Como Reorganizar Argumentos de Funções em JavaScript

Para reorganizar argumentos de funções em JavaScript, você pode usar a função rearg(). Primeiro, crie uma função que invoca a função fornecida com seus argumentos organizados de acordo com os índices especificados. Você pode usar Array.prototype.map() para reordenar argumentos com base em indexes. Em seguida, use o operador spread (...) para passar os argumentos transformados para fn.

Aqui está um exemplo de como usar a função rearg():

const rearg =
  (fn, indexes) =>
  (...args) =>
    fn(...indexes.map((i) => args[i]));

Neste exemplo, usamos rearg() para criar uma nova função que reorganiza os argumentos de outra função.

var rearged = rearg(
  function (a, b, c) {
    return [a, b, c];
  },
  [2, 0, 1]
);
rearged("b", "c", "a"); // ['a', 'b', 'c']

No código acima, criamos uma nova função rearged que reorganiza os argumentos da função function(a, b, c) { return [a, b, c]; }. O argumento indexes especifica a ordem na qual os argumentos devem ser reorganizados. Neste caso, queremos que o terceiro argumento venha primeiro, o primeiro argumento venha em segundo lugar e o segundo argumento venha em terceiro lugar. Quando chamamos rearged('b', 'c', 'a'), ele retorna ['a', 'b', 'c'], que é o resultado de chamar a função original com os argumentos reorganizados.

Resumo

Parabéns! Você concluiu o laboratório de Reorganização de Argumentos de Funções. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.