FCC 中级算法题 Drop it

Drop it

思路:
(1)先获得数组的长度(在后面的循环中数组的长度是变化的);
(2)根据数组的长度设计一个for循环(不能叫遍历了);
(3)获取当前数组的第一个元素(这里shift操作其实已经将数组改动了),如果符合func函数,就将刚才拿掉的第一个元素还给数组,
这么一来只要遇到第一个符合func函数的元素,arr数组就不会再变化了(一个减去,一个又添加回来),最后返回arr数组;
知识点:
(1)Array.shift()方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
(2)Array.unshift()方法将一个或多个元素添加到数组的开头,并返回新数组的长度。
代码:
 1 function drop(arr, func) {
 2   // Drop them elements.
 3 var l=arr.length;
 4   for(var i=0;i<l;i++){
 5     var fir=arr.shift();
 6    if(func(fir)){
 7      arr.unshift(fir);  
 8    }
 9   }
10 
11   return arr;
12 }
13 
14 drop([1, 2, 3, 4,5], function(n) {return n > 4;});
原文地址:https://www.cnblogs.com/lailailee/p/7290833.html