FCC_Intermediate Algorithm_Drop it
1.任务及要求
Drop it
队友该卖就卖,千万别舍不得。
当你的队伍被敌人包围时,你选择拯救谁、抛弃谁非常重要,如果选择错误就会造成团灭。
如果是AD或AP,优先拯救。
因为AD和AP是队伍输出的核心。
其次应该拯救打野。
因为打野死了对面就可以无所顾虑地打龙。
最后才是辅助或上单。
因为辅助和上单都是肉,死了也不会对团队造成毁灭性影响,该卖就卖。
但真实中的团战远比这要复杂,你的队伍很可能会被敌人分割成2个或3个部分。
当你救了一个重要的人时,很可能其他队友也会因此获救。
举个例子:
辅助和AD经常是在一起的,打野和中单在一起,上单经常一个人。
你救了AD,辅助也经常因此获救。
让我们来丢弃数组(arr)的元素,从左边开始,直到回调函数return true就停止。
第二个参数,
func,是一个函数。用来测试数组的第一个元素,如果返回fasle,就从数组中抛出该元素(注意:此时数组已被改变),继续测试数组的第一个元素,如果返回fasle,继续抛出,直到返回true。最后返回数组的剩余部分,如果没有剩余,就返回一个空数组。
如果你被卡住了,记得开大招 Read-Search-Ask。尝试与他人结伴编程。编写你自己的代码。
这是一些对你有帮助的资源:
测试数据:
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]。
2.我的解法
1 // 就这样。 2 function drop(arr, func) { 3 // Drop them elements. 4 return arr.filter(func)[0]?arr.slice(arr.indexOf(arr.filter(func)[0])):[]; 5 } 6 7 drop([1, 2, 3], function(n) {return n < 3; });
3.发现的其他解法
// CSDN:https://blog.csdn.net/qq_34067556/article/details/82384495
// CSDN:https://blog.csdn.net/weixin_30278237/article/details/98548006
// 博客园:https://www.cnblogs.com/lilicat/p/6256519.html
// 博客园:https://www.cnblogs.com/water-moon/p/6904700.html
// 简书:https://www.jianshu.com/p/f1c956bb9a11

浙公网安备 33010602011771号