一天一个仿lodash函数实现-remove、reverse和slice
又遇到简单的函数实现了
remove
移除数组中命中的元素,并返回移除元素组成的数组,会改变原数组。
和pullAt有点像
function remove(arr, iteratee){
const removes = [];
for(let i=0;i<arr.length;i++){
if(iteratee(arr[i])){
removes.push(arr[i]);
arr.splice(i, 1);
i--;
}
}
return removes;
}
reverse
连官方文档都说了是用数组的reverse咯,那就很简单了
function reverse(arr){
return arr == null?arr:arr.reverse();
}
slice
function slice(arr, start=0, end=arr.length){
return arr==null?[]:arr.slice(start, end)
}