FreeCodeCamp筆記之:Drop it(*)

題目

隊友該賣就賣,千萬別舍不得。
當你的隊伍被敵人包圍時,你選擇拯救誰、拋棄誰非常重要,如果選擇錯誤就會造成團滅。如果是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()

思路

  1. 今天是挫敗感很強的一天,我覺得我已經(jīng)out很多了;數(shù)學爛不說,怎么連學js都車上了 打游戲,但類似的DOTA,LOL,王者農(nóng)藥我都沒上過黃金,說這么多干啥,直接進入題目多好;
  2. 意思應該就是在arr中找不符合func的值,從arr中去掉;
  3. 題目給了提示: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才行,等找到答案了來更新;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容