專一於 npm,移除 Bower & Component 包支持git
放棄對 IE 6-8 的支持es6
令 _.forEach
, _.forIn
, _.forOwn
, & _.times
隱式結束鏈式調用隊列api
var wrapped = _([1, 2, 3]); // 在 3.10.1 wrapped.forEach(function(n) { console.log(n); }); // → returns the lodash wrapper without logging until `value` is called // → 在 `value` 調用以前返回 lodash 包裝器(並不會打印記錄) wrapped.forEach(function(n) { console.log(n); }).value(); // → logs each value from left to right and returns the array // → 從左到右記錄每一個值,並返回該數組 // 在 4.0.0 wrapped.forEach(function(n) { console.log(n); }); // → logs each value from left to right and returns the array // → 從左到右記錄每一個值,並返回該數組
移除模塊路徑的分類名數組
// in 3.10.1 var chunk = require('lodash/array/chunk'); // in 4.0.0 var chunk = require('lodash/chunk');
移除 _.pluck
,使用 _.map
迭代器簡寫代替緩存
var objects = [{ 'a': 1 }, { 'a': 2 }]; // in 3.10.1 _.pluck(objects, 'a'); // → [1, 2] _.map(objects, 'a'); // → [1, 2] // in 4.0.0 _.map(objects, 'a'); // → [1, 2]
大多數方法移除 thisArg
性能優化
var objects = [{ 'a': 1 }, { 'a': 2 }]; var context = { 'b': 5 }; function callback(item) { return item.a + this.b; } // in 3.10.1 _.map(objects, callback, context); // in 4.0.0 _.map(objects, _.bind(callback, context));
將 _.max
& _.min
拆分紅 _.maxBy & _.minByapp
var array = [1, 2, 3], objects = [{ 'a': 1 }, { 'a': 2 }]; // in 3.10.1 _.max(array); // → 3 _.max(objects, 'a'); // → { 'a': 2 } _.min(array); // → 1 _.min(objects, 'a'); // → { 'a': 1 } // in 4.0.0 _.max(array); // → 3 _.maxBy(objects, 'a'); // → { 'a': 2 } _.min(array); // → 1 _.minBy(objects, 'a'); // → { 'a': 1 }
移除方法less
移除 _.support
移除 _.findWhere
,使用 _.find
迭代器簡寫代替
移除 _.where
,使用 _.filter
迭代器簡寫代替
移除 _.pluck
,使用 _map
迭代器簡寫代替
方法名變動
_.first
改名爲 _.head
_.indexBy
改名爲 _.keyBy
_.invoke
改名爲 _.invokeMap
_.modArgs
改名爲 _.overArgs
_.padLeft
& _.padRight
改名爲 _padStart
& _.padEnd
_.pairs
改名爲 _.toPairs
_.rest
改名爲 _.tail
_.restParam
改名爲 _.rest
_.sortByOrder
改名爲 _.orderBy
_.trimLeft
& _.trimRight
改名爲 _.trimStart
& _.trimEnd
_.trunc
改名爲 _.truncate
拆分方法
從 _.indexOf
& _.lastIndexOf
拆分出 _.sortedIndexOf
& _.sortedLastIndexOf
從_.max
& _.min
拆分出 _.maxBy
& _.minBy
從 _.omit
& _.pick
拆分出 _.omitBy
& _.pickBy
從 _.sample
拆分出 _.sampleSize
從 _.sortedIndex
拆分出 _.sortedIndexBy
從_.sortedLastIndex
拆分出 _.sortedLastIndexBy
從 _.uniq
拆分出 _.sortedUniq
, _.sortedUniqBy
, & _.uniqBy
將 _.sortByAll
併入 _.sortBy
變動 _.at
的類別爲 「Object」
變動 _.bindAll
的類別爲 Utility
令 "By" 方法的迭代器只提供一個參數
令 _.capitalize
會轉換第一個字符爲大寫 & 其餘字符爲小寫
令 _.functions
返回自有方法的方法名名
令 _.words
默承認鏈式調用
_.clone
& _.flatten
移除 isDeep
參數
當未指定方法名時,移除_.bindAll
綁定全部方法的支持
_.before
& _.after
移除 func
-第一個參數前面
_.debounce
, _.mixin
, & _.throttle
移除布爾值 options
參數支持
_.orderBy
移除布爾值 orders
參數的支持
令 _.max
, _.min
, & _.sum
只支持數組
_.template
移除傳統 options
參數簽名
簡化 _.escapeRegExp
,以向已中止的 ES7 提案對齊
4 kB (gzipped) core build (65 個方法; Backbone v1.2.4 compatible)_.assignIn
, _.before
, _.bind
, _.chain
, _.clone
, _.compact
, _.concat
,
_.create
, _.defaults
, _.defer
, _.delay
, _.each
, _.escape
, _.every
,_.filter
, _.find
, _.first
, _.flatten
, _.flattenDeep
, _.forEach
,_.has
, _.head
, _.identity
, _.indexOf
, _.invokeMap
, _.isArguments
,_.isArray
, _.isBoolean
, _.isDate
, _.isEmpty
, _.isEqual
, _.isFinite
,_.isFunction
, _.isNaN
, _.isNull
, _.isNumber
, _.isObject
, _.isRegExp
,_.isString
, _.isUndefined
, _.iteratee
, _.keys
, _.last
, _.map
,_.max
, _.min
, _.mixin
, _.negate
, _.noConflict
, _.noop
, _.now
,_.once
, _.pick
, _.reduce
, _.result
, _.size
, _.slice
, _.some
,_.sortBy
, _.tap
, _.thru
, _.toArray
, _.uniqueId
, _.value
, & _.values
新增 80 個方法
23 個 array 方法:
_.concat, _.differenceBy, _.differenceWith, _.flatMap, _.fromPairs, _.intersectionBy,
_.intersectionWith, _.join, _.pullAll, _.pullAllBy, _.reverse, _.sortedIndexBy, _.sortedIndexOf,
_.sortedLastIndexBy, _.sortedLastIndexOf, _.sortedUniq, _.sortedUniqBy, _.unionBy,
_.unionWith, _.uniqBy, _.uniqWith, _.xorBy, & _.xorWith
18 個 lang 方法:
_.cloneDeepWith, _.cloneWith, _.eq, _.isArrayLike, _.isArrayLikeObject, _.isEqualWith, _.isInteger,
_.isLength, _.isMatchWith, _.isNil, _.isObjectLike, _.isSafeInteger, _.isSymbol, _.toInteger,
_.toLength, _.toNumber, _.toSafeInteger, & _.toString
13 個object :
_.assignIn, _.assignInWith, _.assignWith, _.functionsIn, _.hasIn, _.invoke, _.mergeWith,
_.omitBy, _.pickBy, _.setWith, _.toPairs, _.toPairsIn, & _.unset
8 個 string 方法:
_.lowerCase, _.lowerFirst, _.replace, _.split, _.upperCase, _.upperFirst, _.toLower, & _.toUpper
8 個 utility 方法:
_.cond, _.conforms, _.nthArg, _.over, _.overEvery, _.overSome, _.rangeRight, & _.toPath
2 個 number 方法:
_.clamp & _.subtract
1 個 chain 方法:
_#next
1 個 collection 方法:
_.sampleSize
添加 3 別名
_.extend
做爲 _.assignIn
的別名
_.extendWith
做爲 _.assignInWith
的別名
_.first
做爲 _.head
的別名
移除 17 個別名_.all
, _.any
, _.backflow
, _.callback
, _.collect
, _.compose
, _.contains
,
_.detect
, _.foldl
, _.foldr
, _.include
, _.inject
, _.methods
, _.object
,_.#run
, _.select
, & _.unique
性能優化
開啓 _.at
, _.find
& _.findLast
的快速合併機制
優化匹配方法,避免若是 object
和 source
相同時進行深度爬行
優化循環引用搜索
優化 _.isEqual
,避免當數組或對象擁有不一樣長度時的堆棧爬行
支持 Emoji
Added support for astral symbols, combining diacritical marks, dingbats,
regional indicator symbols, unicode modifiers, variation selectors, &
zero-width-joiners to string methods
功能性改進
添加 _.cond, _.conforms, _.flip, _.nthArg, _.over, _.overEvery, _.overSome, & _.unary
將 lodash-fp
移動到 lodash
,使用 require('lodash/fp')
做爲不可變 iteratee-first data-last 方法
爲 _.memoize.Cache
添加 clear
方法
爲防反跳函數和節流閥函數添加 flush
方法
_.clone
, _.isEqual
, & _.toArray
支持 ES6 映射、集合 & 標記
_.isEqual
支持數組緩存
_.toArray
支持轉換迭代器
_.zipObject
支持深度路徑
Changed UMD to export to window
or self
when available regardless of other exports
_.flow
& _.flowRight
如今能夠接受一個函數數組
確保 「Collection」 方法能將函數視爲對象
確保防反跳方法 cancel
可以清除 args
& thisArg
引用
確保 _.add
, _.subtract
, & _.sum
不會跳過 NaN
值
確保 _.assign
, _.defaults
, & _.merge
強制將 object
值轉換爲對象
確保使用 new
操做符調用時 _.bindKey
綁定的函數時調用 object[key]
確保 _.clone
可以將生成器視爲函數
確保 _.clone
可以根據源對象的 [[Prototype]]
進行克隆
確保 _.defaults
可以根據 Object.prototype
分配屬性
確保 _.defaultsDeep
不能將字符串併入數組
確保 _.defaultsDeep
& _.merge
不會修改源對象
確保 _.defaultsDeep
可以循環引用
確保 _.isFunction
對生成器函數可以返回 true
確保 _.keys
在 Safari 9 的嚴格模式下將跳過 "length" 屬性
確保 _.merge
可以直接佈置類型數組
確保 _.merge
不能將字符串轉換爲數組
確保 _.merge
可以將純粹對象合併到非純粹對象中
確保 _#plant
的克隆隊列充值迭代器的數據
確保 _.random
min
大於 max
時交換 min
& max
確保 _.range
preserves the sign of start
of -0
確保 _.reduce
& _.reduceRight
在數組分支中使用 getIteratee
修正 _.floor
帶 precision
參數時四捨五入的問題
使 _(...)
成爲一個迭代器 & 可迭代的對象
使 _.drop
, _.take
, & 從右迭代的方法強制將 n
由 undefined
轉換爲 0