Drop it
題目舉了個遊戲的例子,關於遊戲中的角色平衡性與關聯性的問題,讓我們好聯想程式與遊戲的關聯題目說明:
隊友該賣就賣,千萬別捨不得。
當你的隊伍被敵人包圍時,你選擇拯救誰、拋棄誰非常重要,如果選擇錯誤就會造成團滅。如果是AD或AP,優先拯救。因為AD和AP是隊伍輸出的核心。其次應該拯救打野。因為打野死了對面就可以無所顧慮地打龍。最後才是輔助或上單。因為輔助和上單都是肉,死了也不會對團隊造成毀滅性影響,該賣就賣。 但真實中的團戰遠比這要覆雜,你的隊伍很可能會被敵人分割成2個或3個部分。 當你救了一個重要的人時,很可能其他隊友也會因此獲救。 舉個例子: 輔助和AD經常是在一起的,打野和中單在一起,上單經常一個人。你救了AD,輔助也經常因此獲救。
關於遊戲術語: Glossary-1 Glossary-2
Top:上路 Mid(Middle) : 中路 Bot(Bottom) : 下路
JG(jungle) : 遊走於野區,靠野怪來補充經濟及升等,還有最重要的GANK
APC(Ability Power Carry) : 運用法術傷害的主要攻擊手(法師),Carry就是說主要輸出,可以"帶動"團隊士氣的。在會戰中處於後排
ADC(Attack Damage Carry) : 運用物理傷害的主要攻擊手(主流是遠程的射手,但不一定)Carry就是說主要輸出,可以"帶動"團隊士氣的。在會戰中處於後排
SUP(Support) : 支援團隊的輔助型角色,前期任務是幫助ADC成長
而此題題目給定1個array與1個func(依據條件回傳true or false),題目要求:丟棄不符合條件的元素,直到函數回傳條件true為止,剩餘的元素(當你救了一個重要的人時,很可能其他隊友也會因此獲救)即為題目所求需將她作為答案回傳,如果沒有符合的元素,則回傳空array([])
function drop(arr, func) {
// Drop them elements.
function findKeyPart(arr, func)
{
var pos = false ;
for(var i=0;i<arr.length;i++)
{
if( func(arr[i]) )
{
pos = i;
break;
}
}
return (pos !== false ) ? pos : false;
}
return (findKeyPart(arr, func) !== false) ? arr.slice(findKeyPart(arr, func)) : [];
}
drop([1, 2, 3], function(n) {return n < 3; });
drop([1, 2, 3, 4], function(n) {return n > 5;});
Solution 1:
//your code here
Solution 2:
**P.S. / Reference: Array.prototype.slice()
Glossary-LOL-1
Glossary-2