Fixes/changes some old-Internet Explorer and related edge case behavior. Test your app with Underscore 1.8.1 in an old IE and let us know how it's doing...
For consistency and speed across browsers, Underscore now ignores native array methods for forEach, map, reduce, reduceRight, filter, every, some, indexOf, and lastIndexOf. "Sparse" arrays are officially dead in Underscore.
Added _.iteratee to customize the iterators used by collection functions. Many Underscore methods will take a string argument for easier _.property-style lookups, an object for _.where-style filtering, or a function as a custom callback.
Underscore now registers itself for AMD (Require.js), Bower and Component, as well as being a CommonJS module and a regular (Java)Script. An ugliness, but perhaps a necessary one.
Added _.partition, a way to split a collection into two lists of results — those that pass and those that fail a particular predicate.
Added _.property, for easy creation of iterators that pull specific properties from objects. Useful in conjunction with other Underscore collection functions.
Added _.matches, a function that will give you a predicate that can be used to tell if a given object matches a list of specified key/value properties.
Added _.constant, as a higher-order _.identity.
Added _.now, an optimized way to get a timestamp — used internally to speed up debounce and throttle.
The _.partial function may now be used to partially apply any of its arguments, by passing _ wherever you'd like a placeholder variable, to be filled-in later.
The _.each function now returns a reference to the list for chaining.
The _.keys function now returns an empty array for non-objects instead of throwing.
2015-04-02 — Diff — Docs
_.create
method, as a slimmed down version ofObject.create
._.create
方法,相当于Object.create
方法的精简版。isArrayLike
to be JIT-ed. Also fixes a bug when passing0
toisArrayLike
.isArrayLike
被 JIT。同时修复了isArrayLike
在处理0
时的一个 bug。1.8.2
2015-02-22 — Diff — Docs
fromIndex
argument to_.contains
._.contains
增加了一个fromIndex
参数。1.8.1
2015-02-19 — Diff — Docs
1.8.0
2015-02-19 — Diff — Docs
_.mapObject
, which is similar to_.map
, but just for the values in your object. (A real crowd pleaser.)_.mapObject
,它与_.map
类似,但它用于处理对象中的值。(众望所归有木有?)_.allKeys
which returns all the enumerable property names on an object._.allKeys
,它会返回一个对象的所有可枚举属性的属性名。_.extend
only copied "own" properties. Hopefully this will un-break you — if it breaks you again, I apologize._.extend
只复制对象 “自身” 的属性,但我们又回滚了这个变更。希望这个决定不会搞挂你的应用——如果搞挂了,我们很抱歉。_.extendOwn
— a less-useful form of_.extend
that only copies over "own" properties._.extendOwn
,它是_.extend
的一个不那么常用的形态,它只复制对象 “自身” 的属性。_.findIndex
and_.findLastIndex
functions, which nicely complement their twin-twins_.indexOf
and_.lastIndexOf
._.findIndex
和_.findLastIndex
,它们很好地实现了各自的双胞胎方法_.indexOf
和_.lastIndexOf
。_.isMatch
predicate function that tells you if an object matches key-value properties. A kissing cousin of_.isEqual
and_.matcher
._.isMatch
判断函数,它可以告诉你一个对象是否匹配给定的属性名值对。它的功能和_.isEqual
和_.matcher
极为相似。_.isError
function._.isError
函数。_.unzip
function as the inverse ofzip
. Flip-flopping. I know._.unzip
函数,相当于zip
的反相版本。好吧,你们需要来回转换,我明白。_.result
now takes an optional fallback value (or function that provides the fallback value)._.result
现在接受一个可选的 fallback 值(或者是一个可以提供 fallback 值的函数)。_.propertyOf
function generator as a mirror-world version of_.property
._.propertyOf
这个函数生成器,相当于_.property
的镜像版本。_.matches
. It's now known by a more harmonious name —_.matcher
._.matches
。它已经换了一个更和谐的新名字——_.matcher
。1.7.0
2014-08-26 — Diff — Docs
forEach
,map
,reduce
,reduceRight
,filter
,every
,some
,indexOf
, andlastIndexOf
. "Sparse" arrays are officially dead in Underscore.forEach
、map
、reduce
、reduceRight
、filter
、every
、some
、indexOf
和lastIndexOf
等方法时会忽略原生的数组方法。“稀疏” 数组在 Underscore 中已经正式灭亡。_.iteratee
to customize the iterators used by collection functions. Many Underscore methods will take a string argument for easier_.property
-style lookups, an object for_.where
-style filtering, or a function as a custom callback._.iteratee
方法,用于自定义集合函数所需要的迭代函数。现在 Underscore 的很多方法的参数都趋于一致:可以接受一个字符串参数,以便更容易地实现_.property
风格的查询;也可以接受一个对象参数,以实现_.where
风格的过滤操作;还可以接受一个函数参数,作为自定义的回调函数。_.before
as a counterpart to_.after
._.before
,从而与_.after
相呼应。_.negate
to invert the truth value of a passed-in predicate._.negate
,它接受一个判断函数,并将其返回值取反。_.noop
as a handy empty placeholder function._.noop
,可以很方便地拿它作为占位符函数。_.isEmpty
now works witharguments
objects._.isEmpty
现在可以处理arguments
对象了。_.has
now guards against nullish objects._.has
增加了对 “空” 对象的防卫处理。_.omit
can now take an iteratee function._.omit
现在可以接受一个迭代函数作为参数了。_.partition
is now called withindex
andobject
._.partition
现在不仅可以处理数组,也可以处理对象了。_.matches
creates a shallow clone of your object and only iterates over own properties._.matches
会对你的对象生成一个浅拷贝,并且只迭代对象自身的属性。Object.assign
,_.extend
only iterates over the object's own properties._.extend
方法将只迭代对象自身的属性,更好地向未来的 ES6Object.assign
方法靠拢。_.extend
and_.defaults
—if the passed in argument isn't a JavaScript object it's just returned._.extend
和_.defaults
时,不需要操心非法输入的防卫问题了——如果传入的第一个参数不是一个 JS 对象,会直接将其返回。_.max
and_.min
to handle arrays containingNaN
(like strings or other objects) andInfinity
and-Infinity
._.max
和_.min
的一些边缘情况,可以更好地处理包含NaN
(类似于字符串或其它对象)、Infinity
和-Infinity
的数组。each
andsome
and they'll be used internally by other Underscore functions too.each
和some
这样的基础方法,它们将在 Underscore 内部被其它函数调用。escape
转义函数会处理反引号(```),以避免 IE8- 下出现问题。_.union
and_.difference
now only work with arrays and not variadic args._.union
和_.difference
现在只能处理数组,而不能处理其它类型的参数。_.memoize
exposes the cache of memoized values as a property on the returned function._.memoize
会在返回的函数身上暴露一个cache
属性,这个属性保存了已计算的所有值。_.pick
acceptsiteratee
andcontext
arguments for a more advanced callback._.pick
可接受iteratee
和context
参数,从而提供了更高级的回调功能。data
object._.template
always returns a function now.data
对象。_.template
现在总是返回一个函数。1.6.0
2014-02-10 — Diff — Docs
_.partition
, a way to split a collection into two lists of results — those that pass and those that fail a particular predicate._.property
, for easy creation of iterators that pull specific properties from objects. Useful in conjunction with other Underscore collection functions._.matches
, a function that will give you a predicate that can be used to tell if a given object matches a list of specified key/value properties._.constant
, as a higher-order_.identity
._.now
, an optimized way to get a timestamp — used internally to speed updebounce
andthrottle
._.partial
function may now be used to partially apply any of its arguments, by passing_
wherever you'd like a placeholder variable, to be filled-in later._.each
function now returns a reference to the list for chaining._.keys
function now returns an empty array for non-objects instead of throwing.(译注:1.6 和更低的版本暂不翻译了)