一天一个仿lodash函数实现-tail、take
tail是很简单的函数方法了,就是返回数组除了开头元素外的数组。
take则是从数组中挑出指定个数的元素组成数组。
takeRight则是往后开始挑元素。
takeWhile则是根据传入的函数来判断,直到函数返回falsey时,结束挑选。
function tail(arr){
return arr.slice(1)
}
function take(arr, n=1){
return arr.slice(0, n)
}
function takeRight(arr, n=1){
if(n===0) {
return []
}
return arr.slice(-n);
}
function takeRightWhile(arr, predicate){
if(!arr.length) return [];
let index = arr.length - 1;
const result = [];
while(index>=0){
if(!predicate(arr[index], index, arr)) {
break;
}
result.unshift(arr[index]);
index--;
}
return result;
}
function takeWhile(arr, predicate){
if(!arr.length) return [];
let index = 0;
const result = [];
while(index<arr.length){
if(!predicate(arr[index], index, arr)) {
break;
}
result.push(arr[index]);
index++;
}
return result;
}