問題:
讓我們來丟棄數組(arr)的元素,從左邊開始,直到回調函數return true就停止。
第二個參數,func,是一個函數。用來測試數組的第一個元素,如果返回fasle,就從數組中拋出該元素(注意:此時數組已被改變),繼續測試數組的第一個元素,如果返回fasle,繼續拋出,直到返回true。
最后返回數組的剩余部分,如果沒有剩余,就返回一個空數組。
代碼實現:
function drop(arr, func) {
? ? var i=0;
? ? while(!func(arr[i])&&i<arr.length){
? ? ? i++;//當func()不滿足時i++
? ? }
? ? arr=arr.slice(i,arr.length);//將arr后半段拷貝
? ? return arr;
}
ps:
slice()方法返回一個從開始到結束(不包括結束)選擇的數組的一部分淺拷貝到一個新數組對象。原始數組不會被修改。