Underscore - Array Functions
initial(数组去尾)
语法:_.initial( array [ , n ] )
删除数组中后 n 个元素,返回新数组,n 默认为 1。
源码:
1 | _.initial = function(array, n, guard) { |
rest(数组掐头)
别名:tail, drop
语法:_.rest( array [ , index ] )
删除数组中前 n 个元素,返回新数组,n 默认为 1。
源码:
1 | _.rest = _.tail = _.drop = function(array, n, guard) { |
first(数组取头)
别名:head, take
语法:_.first( array [ , n ] )
返回数组中前 n 个元素。
源码:
1 | _.first = _.head = _.take = function(array, n, guard) { |
注意:
使用 void 0 来返回 undefined 值,因为 JavaScript 中 undefined 不是关键字,可以作为变量名。
last(数组取尾)
语法:_.last( array [ , n ] )
返回数组中后 n 个元素。
源码:
1 | _.last = function(array, n, guard) { |
flatten(数组扁平化)
语法:_.flatten( array [ , shallow ] )
将一个多维数组转换为一维数组,shallow 为 true 则只解套当前层。
1 | // Flatten out an array, either recursively (by default), or just one level. |
uniq(数组去重)
别名:unique
语法:_.uniq( array [ , isSorted ] [ , iteratee ] )
1 | _.uniq = _.unique = function(array, isSorted, iteratee, context) { |
union(数组并集)
语法:_.union( *arrays )
1 | _.union = restArgs(function(arrays) { |
intersection(数组交集)
语法:_.intersection( *arrays )
1 | _.intersection = function(array) { |
compact
语法:_.compact( array )
difference
语法:_.difference( array, *others )
without
语法:_.without( array, *values )
源码:
1 | _.without = restArgs(function(array, otherArrays) { |