资讯专栏INFORMATION COLUMN

Lodash 4.0.0 更新文档

mtunique / 520人阅读

摘要:更新文档年月日兼容性警告专注于,移除包支持放弃对的支持可以使用以继续开启支持令隐式结束链式调用队列在在调用之前返回包装器并不会打印记录从左到右记录每个值,并返回该数组在从左到右记录每个值,并返回该数组移除模块路径的分类名移除,使用

Lodash 4.0.0 更新文档 v4.0.0 2016 年 1 月 12 日 — Diff — Docs
兼容性警告

专注于 npm,移除 Bower & Component 包支持

放弃对 IE 6-8 的支持

Use es5-shim, & optionally es6-shim, to enable support

可以使用 es5-shim, & optionally es6-shim, 以继续开启支持

_.forEach, _.forIn, _.forOwn, & _.times 隐式结束链式调用队列

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 & _.minBy

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 }

移除方法

移除 _.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

4 个 math 方法:

_.maxBy, _.mean, _.minBy, & _.sumBy

2 个 function 方法:

_.flip & _.unary

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 的快速合并机制

优化匹配方法,避免如果 objectsource 相同时进行深度爬行

优化循环引用搜索

优化 _.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

修正 _.floorprecision 参数时四舍五入的问题

使 _(...) 成为一个迭代器 & 可迭代的对象

使 _.drop, _.take, & 从右迭代的方法强制将 nundefined 转换为 0

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/78488.html

相关文章

  • npm入手笔记0x001-项目初始化和包增删改

    摘要:引用并执行如果安装出错,比如写错了包名,将会发生以下事情命令行报错使用可以自己新建一个文件编写也可以直接使用来初始化一个该命令是一个交互式命令,可以根据提示输入相应信息生成相应的,命令提示后面的中为提示内容,可以选择一路,然后再去修改。 0x001 概述 npm是一个包管理工具,本文章基本算是对官方文档的解读、翻译和实操笔记,顺便说明使用npm中的坑。 0x002 安装Node.js ...

    Baoyuan 评论0 收藏0
  • webpack入门学习手记(二)

    摘要:例如现在的入门学习手记系列。收到粉丝留言和打赏的喜悦。安装上一篇入门学习手记一,主要是介绍了的核心概念,是整个学习过程的基础知识。新生成的类似如下入门学习手记因为生成的内容过多,我直接省略掉了。 showImg(https://segmentfault.com/img/bVbk5Nd?w=1150&h=599); 本人微信公众号:前端修炼之路,欢迎关注。 最近开始想要维护一个个人的公众...

    Joyven 评论0 收藏0
  • Lodash常用API笔记

    摘要:中文文档目前我只找到了版本,现在已经更新到了,好多文档已经过期。而且中太多,有时候常用的几个我总是记不住名字,在这里贴出来,方便自己和大家。原生用法直接使用的根据条件去除某个元素。 lodash中文文档目前我只找到了3.10.x版本,现在lodash已经更新到4.17.x了,好多文档已经过期。而且lodash中api太多,有时候常用的几个我总是记不住名字,在这里贴出来,方便自己和大家。...

    Yujiaao 评论0 收藏0
  • 记一次 webpack 打包体积优化

    摘要:手头做的项目开发得差不多了,而打包配置是一开始粗略配置的,不大的项目打包出来得,所以现在必须进行优化。用于生产环境的打包,设置其为后,这些库会提供最小体积的文件。这种情况打包后的体积要更小一些。最后打包结果的体积开销主要就是以上几项。 手头做的项目开发得差不多了,而打包配置是一开始粗略配置的,不大的项目打包出来得6MB+,所以现在必须进行优化。 打包结果分析 执行命令 webpack ...

    tomlingtm 评论0 收藏0
  • webpack学习实践第一天

    摘要:学习实践第一天安装参考文档中文文档安装篇中文文档创建文件夹并且进入创建的文件夹初始化一个新的文件,使用跳过询问阶段。查看目录结构接下来按中文文档安装篇教程演练。中文文档对该实例的说明在此示例中,标签之间存在隐式依赖关系。 webpack学习实践第一天 By Ylise 1.安装webpack 参考文档: 1.webpack中文文档安装篇 2.Lodash中文文档 1.创建文件夹...

    caohaoyu 评论0 收藏0

发表评论

0条评论

mtunique

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<