對數(shù)組中的每個元素都執(zhí)行一次指定的函數(shù)(callback),直到此函數(shù)返回 true,如果發(fā)現(xiàn)這個元素,some 將返回 true,如果回調(diào)函數(shù)對每個元素執(zhí)行后都返回 false ,some 將返回 false。
var arr=[1,2,3,4,5];
arr.some(function(el,index){
return (el==5);
});
在這段代碼中,當遍歷到5==5時,為return true,這能做什么用呢?前幾天作者就碰到了一個需求:

當點擊上面的任務欄時,上面被點擊的任務欄跳到下面的框,當點擊下面的任務欄時,被點擊的任務欄移動到上邊的框里。說到這里其實還好做,用jq的remove()和append就可以實現(xiàn),當點擊上面的任務欄時,將任務欄remove掉,然后用append添加到下面的div里,注意先添加,后remove,一會你就知道為什么了。
還有個附加需求,就是當刷新頁面的時候,兩個框里的狀態(tài)不變(前提:這個功能需要前臺實現(xiàn)),這時,我就想到了用cookie或者stroage,我選擇了localstroage,每個人物欄都有個id,將這些id存在stroage里邊,這樣刷新的時候,任務欄會依據(jù)stroage重新排列,好,到此為止還沒有任何問題,但是有沒有想過一種情況,當用戶閑的蛋疼,一個任務欄兩個盒子之間來回點擊,這樣一來,你的數(shù)組里就會用重復的id,這時候some就上場了,還用上面那段代碼,比如已經(jīng)存了id為1,2,3,4,5,這時用戶瞎扯淡,來回點了好幾次id為5的任務欄,這是這段代碼就會返回true。然后用if判斷一下,如果為false,就將這個id push到數(shù)組里,然后把id經(jīng)過字符串拼接append到下面的div里,然后再把被點擊的dom remove掉,這樣就不怕遇到熊孩子了。~
最后送上一個彩蛋,其實some方法還能節(jié)省性能,仔細看第一句,對數(shù)組中的每個元素都執(zhí)行一次指定的函數(shù)(callback),直到此函數(shù)返回 true,如果發(fā)現(xiàn)這個元素,some 將返回 true,也就是說,當代碼改為el==2,判斷為true了,后面的遍歷將不再執(zhí)行。

為什么remove排在最后,你找到答案了嗎?
最后獻上一句作者最近讀的《好嗎,好的》里的一句話:
“平行世界,多元生活,既可以朝九晚五,又可以浪跡天涯。”——大冰