題目
隊友該賣就賣,千萬別舍不得。
當你的隊伍被敵人包圍時,你選擇拯救誰、拋棄誰非常重要,如果選擇錯誤就會造成團滅。如果是AD或AP,優(yōu)先拯救。因為AD和AP是隊伍輸出的核心。其次應該拯救打野。因為打野死了對面就可以無所顧慮地打龍。最后才是輔助或上單。因為輔助和上單都是肉,死了也不會對團隊造成毀滅性影響,該賣就賣。但真實中的團戰(zhàn)遠比這要復雜,你的隊伍很可能會被敵人分割成2個或3個部分。當你救了一個重要的人時,很可能其他隊友也會因此獲救。
舉個例子:
輔助和AD經(jīng)常是在一起的,打野和中單在一起,上單經(jīng)常一個人。你救了AD,輔助也經(jīng)常因此獲救。
讓我們來丟棄數(shù)組(arr)的元素,從左邊開始,直到回調(diào)函數(shù)return true就停止。第二個參數(shù),func,是一個函數(shù)。用來測試數(shù)組的第一個元素,如果返回fasle,就從數(shù)組中拋出該元素(注意:此時數(shù)組已被改變),繼續(xù)測試數(shù)組的第一個元素,如果返回fasle,繼續(xù)拋出,直到返回true。最后返回數(shù)組的剩余部分,如果沒有剩余,就返回一個空數(shù)組。如果你被卡住了,記得開大招 Read-Search-Ask。嘗試與他人結(jié)伴編程。編寫你自己的代碼。
這是一些對你有幫助的資源:
Arguments object
Array.shift()
Array.slice()
思路
- 今天是挫敗感很強的一天,我覺得我已經(jīng)out很多了;數(shù)學爛不說,怎么連學js都車上了 打游戲,但類似的DOTA,LOL,王者農(nóng)藥我都沒上過黃金,說這么多干啥,直接進入題目多好;
- 意思應該就是在arr中找不符合func的值,從arr中去掉;
- 題目給了提示:Array.slice() ,這個應該可以用上;
解答
function drop(arr, func) {
// Drop them elements.
var i =0;
while(!func(arr[i]) && i< arr.length ){
i++;
}
arr = arr.slice(i,arr.length); // 將去掉第i個不符合的數(shù)組重新賦值給 arr;
return arr;
}
drop([1, 2, 3], function(n) {return n < 3; });
- 題目還有提示Array.shift(),所以這個應該也可以用上;
function drop(arr, func) {
// Drop them elements.
var len =arr.length;
for(var i = 0; i < len; i++){
if(!func(arr[0])){
arr.shift();
}
}
return arr;
}
drop([1, 2, 3], function(n) {return n < 3; });
- 這個題目有一個地方試了好久,就是為什么不能是 i<= arr.length 來寫for循環(huán),寫了會有一些等式不滿足,而是要用while才行,等找到答案了來更新;