隊友該賣就賣,千萬別捨不得。數組
當你的隊伍被敵人包圍時,你選擇拯救誰、拋棄誰很是重要,若是選擇錯誤就會形成團滅。瀏覽器
若是是AD或AP,優先拯救。函數
由於AD和AP是隊伍輸出的核心。測試
其次應該拯救打野。code
由於打野死了對面就能夠無所顧慮地打龍。ip
最後纔是輔助或上單。element
由於輔助和上單都是肉,死了也不會對團隊形成毀滅性影響,該賣就賣。get
但真實中的團戰遠比這要複雜,你的隊伍極可能會被敵人分割成2個或3個部分。回調函數
當你救了一個重要的人時,極可能其餘隊友也會所以獲救。io
舉個例子:
輔助和AD常常是在一塊兒的,打野和中單在一塊兒,上單常常一我的。
你救了AD,輔助也常常所以獲救。
讓咱們來丟棄數組(arr)的元素,從左邊開始,直到回調函數return true就中止。
第二個參數,func,是一個函數。用來測試數組的第一個元素,若是返回fasle,就從數組中拋出該元素(注意:此時數組已被改變),繼續測試數組的第一個元素,若是返回fasle,繼續拋出,直到返回true。
最後返回數組的剩餘部分,若是沒有剩餘,就返回一個空數組。
Arguments object
Array.shift()
Array.slice()
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]。用 while()
循環,當 func(arr[0])
不被知足時移除arr首項。而後繼續遍歷數組剩餘部分。
要注意的是,當 func(arr[0])
一直不被知足時,arr首項將被無限多(瀏覽器最大值邊界)次移除,即便arr爲空數組也會循環此操做。爲了保證效率,應加上限制條件 arr.length
阻止無限循環的發生。
function drop(arr, func) { // Drop them elements. while(!func(arr[0]) && arr.length) { arr.shift(); } return arr; } drop([1, 2, 3], function(n) {return n < 3; });