##takeRight関数の課題内容
↓
https://js-drills.com/blog/takeright/
##take関数の取り組む前の状態
takeの逆なので簡単だと思っていた
##take関数に取り組んだ後の状態
- (1 + i)ここの部分の理解が少し追いつかなかったです。
##tail関数の実装コード(答えを見る前)
実行できなかった
##tail関数の実装コード(答えを見た後)
function takeRight(array, n = 1) {
if(n === 0) {
return [];
}
if(n > array.length) {
return [...array];
}
const takenArray = [];
for(let i = 0; i < n; i++) {
// array [1, 2, 3]
// 1 + i => 1, 2, 3
// array.length =>
// 3 - (1 + 0) = 2,
// 3 - (1 + 1) = 1
// 3 - (1 + 2) = 0
const indexFromRight = array.length - (1 + i)
takenArray.unshift( array[indexFromRight] );
}
return takenArray;
}
console.log( takeRight([1, 2, 3]) );
// => [3]
console.log( takeRight([1, 2, 3], 2) );
// => [2, 3]
console.log( takeRight([1, 2, 3], 5) );
// => [1, 2, 3]
console.log( takeRight([1, 2, 3], 0) ) ;
// => []