让我们来丢弃数组(arr
)的元素,从左边开始,直到回调函数return true
就停止。
第二个参数,func
,是一个函数。用来测试数组的第一个元素,如果返回false
,就从数组中抛出该元素(注意:此时数组已被改变),继续测试数组的第一个元素,如果返回false
,继续抛出,直到返回true
。
最后返回数组的剩余部分,如果没有剩余,就返回一个空数组。
function drop(arr, func) {
var arr2 = arr.filter(func); //筛选
//为空则直接返回
if(arr2.length === 0){
return arr2;
} else {
var start = arr.indexOf(arr2[0]);
arr.splice(0,start);
return arr;
}
}
验算:
drop([1, 2, 3, 4], function(n) {return n > 5;}); //result: []
drop([1, 2, 3, 4], function(n) {return n >= 3;}); //result: [3,4]
THE END.
网友评论