??Drop it | Free Code Camp

让我们来丢弃数组(arr)的元素,从左边开始,直到回调函数return true就停止。
第二个参数,func,是一个函数。用来测试数组的第一个元素,如果返回fasle,就从数组中抛出该元素(注意:此时数组已被改变),继续测试数组的第一个元素,如果返回fasle,继续抛出,直到返回true。
最后返回数组的剩余部分,如果没有剩余,就返回一个空数组。
drop([1, 2, 3, 4], function(n) {return n >= 3;}) 应该返回 [3, 4]。
drop([0, 1, 0, 1], function(n) {return n === 1;}) 应该返回 [1, 0, 1]。
drop([1, 2, 3], function(n) {return n > 0;}) 应该返回 [1, 2, 3]。
drop([1, 2, 3, 4], function(n) {return n > 5;}) 应该返回 []。
drop([1, 2, 3, 7, 4], function(n) {return n > 3;}) 应该返回 [7, 4]。
drop([1, 2, 3, 9, 2], function(n) {return n > 2;}) 应该返回 [3, 9, 2]。

i<arr.length vs. i<times ??

//wrong ??
function drop(arr, func) {
  // Drop them elements.
  
 for(var i=0;i<arr.length;i++) {
   if(func(arr[0])){
     break;
   } else {
      arr.shift();
   }
 }
  return arr;

}

drop([1, 2, 3,4], function(n) {return n >= 3; });```

![wrong](http://upload-images.jianshu.io/upload_images/316258-79b31f1805632213.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

//正解
function drop(arr, func) {
// Drop them elements.
var times = arr.length;
for(var i=0;i<times;i++) {
if(func(arr[0])){
break;
} else {
arr.shift();
}
}
return arr;

}

drop([1, 2, 3,4], function(n) {return n >= 3; });

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容