underscore為Array提供了許多工具類方法,可以更方便快捷地操作Array。
first / last
顧名思義,這兩個函數分別取第一個和最后一個元素:
'use strict';var arr = [2, 4, 6, 8];_.first(arr); // 2_.last(arr); // 8
flatten
flatten()接收一個Array,無論這個Array里面嵌套了多少個Array,flatten()最后都把它們變成一個一維數組:
'use strict';_.flatten([1, [2], [3, [[4], [5]]]]); // [1, 2, 3, 4, 5]
zip / unzip
zip()把兩個或多個數組的所有元素按索引對齊,然后按索引合并成新數組。例如,你有一個Array保存了名字,另一個Array保存了分數,現在,要把名字和分數給對上,用zip()輕松實現:
'use strict';var names = ['Adam', 'Lisa', 'Bart'];var scores = [85, 92, 59];_.zip(names, scores);// [['Adam', 85], ['Lisa', 92], ['Bart', 59]]
unzip()則是反過來:
'use strict';var namesAndScores = [['Adam', 85], ['Lisa', 92], ['Bart', 59]];_.unzip(namesAndScores);// [['Adam', 'Lisa', 'Bart'], [85, 92, 59]]
object
有時候你會想,與其用zip(),為啥不把名字和分數直接對應成Object呢?別急,object()函數就是干這個的:
'use strict';var names = ['Adam', 'Lisa', 'Bart'];var scores = [85, 92, 59];_.object(names, scores);// {Adam: 85, Lisa: 92, Bart: 59}
注意_.object()是一個函數,不是JavaScript的Object對象。
range
range()讓你快速生成一個序列,不再需要用for循環實現了:
'use strict';// 從0開始小于10:_.range(10); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]// 從1開始小于11:_.range(1, 11); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]// 從0開始小于30,步長5:_.range(0, 30, 5); // [0, 5, 10, 15, 20, 25]// 從0開始大于-10,步長-1:_.range(0, -10, -1); // [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答