drop関数の課題内容
_.drop関数を自分で実装する課題。
https://lodash.com/docs/4.17.15#drop
「課題内容」/「解説動画」/「解答例」を確認したい場合は、以下リンク先のページを参照。
https://js-drills.com/blog/drop/
課題に取り組む前の状態
- 解答例を見なくてもできそうと思った。
課題に取り組んだ後の状態
- 解答例では、第2引数が0の場合や配列の長さより長い場合をあえて分けて処理するなど、自分のコードと違う部分があるが、自分の実装コードのforループで、第2引数が0の場合は処理されないように記述し、第2引数が配列の長さより長い場合も含め、サンプルの処理結果が同じように出ているため、このままで良いかと判断。
- もし、極端に大きすぎる第2引数が渡された場合に備える場合は、むだにforループを続けてしまうので、やはり解答例と同じようにif文を使いたいと思う。
drop関数の実装コード(答えを見る前)
function drop(array, n = 1) {
const newArray = [...array];
for (let i = 0; i < n; i++) {
newArray.shift();
}
return newArray;
}
drop関数の実装コード(答えを見た後)
function drop(array, n = 1) {
const newArray = [...array];
for (let i = 0; i < n; i++) {
newArray.shift();
if (newArray.length === 0) {
return [];
}
}
return newArray;
}