题目:
丢弃数组(arr)的元素,从左边开始,直到回调函数return true就停止。
第二个参数,func
,是一个函数。用来测试数组的第一个元素,如果返回fasle,就从数组中抛出该元素(注意:此时数组已被改变),继续测试数组的第一个元素,如果返回fasle,继续抛出,直到返回true。
最后返回数组的剩余部分,如果没有剩余,就返回一个空数组。
代码:
1 function drop(arr, func) { 2 //判断数组第一个元素是否符合func的条件 3 function isFit(arr){ 4 //数组参数为空直接返回空数组 5 if(!arr) {return arr;} 6 else{ 7 //不符合func的条件,删掉arr[0] 8 if (func(arr[0]) == false) { 9 arr.shift(); 10 //判断新的arr[0]是否符合func 11 if(arr[0]){return isFit(arr);} 12 //没有剩余,就返回一个空数组 13 else {return arr;} 14 } 15 //符合func的条件,返回数组剩余部分 16 else {return arr;} 17 } 18 } 19 return isFit(arr); 20 21 }