数组取值算法挑战

挑战:

删除数组(第一个参数)的元素,从左边开始,直到回调函数(第二个参数)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]。

答案:

方法描述
filter()检测数值元素,并返回符合条件所有元素的数组。
slice()从某个已有的数组返回选定的元素
indexOf()检索字符串。
function drop(arr, func) {
  // Drop them elements.
  var dArr = arr.filter(func);
  if (dArr.length > 0) {
      return arr.slice(arr.indexOf(dArr[0]));
  } else {
      return [];
  }
}

drop([1, 2, 3], function(n) {return n < 3; });

运行结果:

[1,2,3]

在线测试:

数组取值算法挑战 | w3cschool

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值