コールバックを使った配列要素の削除

Beginner

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

はじめに

この実験では、配列を操作する JavaScript のプログラミングチャレンジに取り組みます。この実験の目的は、特定の条件が満たされるまで配列の末尾から要素を削除し、削除された要素を返す関数を書くことです。このチャレンジを完了するには、さまざまな JavaScript 配列メソッドとコールバック関数を使用します。

条件が満たされるまで配列の末尾から要素を削除する

コーディングの練習を始めるには、ターミナル/SSH を開いてnodeと入力します。

ここに、渡された関数がfalseを返すまで配列の末尾から要素を削除する関数があります。その後、削除された要素を返します。

これを使用するには、スプレッド演算子 (...) と Array.prototype.reverse() を使用して配列の逆順コピーを作成します。次に、Array.prototype.entries() を使った for...of ループを使って逆順コピーをループ処理し、関数から返される値が偽でなくなるまで続けます。

コールバック関数 fn は、要素の値を 1 つの引数として受け取ります。最後に、Array.prototype.slice() を使って削除された要素を返します。

const takeRightWhile = (arr, fn) => {
  for (const [i, val] of [...arr].reverse().entries())
    if (!fn(val)) return i === 0 ? [] : arr.slice(-i);
  return arr;
};

この関数の使い方の例を以下に示します。

takeRightWhile([1, 2, 3, 4], (n) => n >= 3); // [3, 4]

まとめ

おめでとうございます!「条件が満たされるまで配列の末尾から要素を削除する」実験を完了しました。スキルを向上させるために、LabEx でさらに多くの実験を練習できます。