es学习

过去几年像 Underscore 和 lodash 等库进入许多JavaScript程序员的工具函数中。虽然这些工具库可以使你的代码写起来更容易,但是他们不一定使代码更简单或更容易理解。
 
JavaScript不断发展,新ES2015和ES2016版本(以前分别称为ES6和ES7)包了一堆新功能特性,并很容易使用它们。这些特性使得工具库以前的一些基本功能已经过时。
所以你可能不再需要Underscore。
 
例子:
这些例子说明,ES5.1,ES2015和ES2016做这些事情很容易,你可能不需要一个实用程序库了。ES5已经得到了所有现代浏览器和node.js的支持,要是想支持传统浏览器(比如IE8),还需要像es-shim这样的帮助脚本。
Arrays(数组)
Iterate(迭代)
.each(array,iteratee)
array.forEach(iteratee)
 
Map
_map(array,iteratee)
 
array.map(iteratee)
 
Find
 
_.find(array,predicate)
 
array.find(predicate)
 
Get a property from each element in an array(萃取数组对象中某属性值
 
_.pluck(array,propertyName)
 
array.map(value=>value[propertyName])
 
Check if array includes an element(检查数组中是否包含某个元素)
_.contains(array,element)
 
array.includes(element)
 
Convert an array-like object to array(把一个类数组转换成一个数组)
_.toArray(arguments)
 
Array.from(arguments)
Create a copy of an array with all falsy values removed.(返回一个除去所有false值的 array副本)
 
_.compact(array)
 
array.filter(x=>!!x)
Create a copy of an array with duplicates removed(返回 array去重后的副本)
 
_.uniq(array)
 
...new Set(array)
Find the index of a value in an array(查找某个值在 array 中的索引值)
_.indexOf(array, value)
 
array.indexOf(value)
 
Create an array with n numbers, starting from x(创建一个 N个数字数组,从x开始)
Underscore
_.range(x, x + n)
 
ES2015
Array.from({ length: n }, (v, k) => k + x)
 
 
Objects(对象)
Names of own enumerable properties(枚举自身的属性名)
Underscore
_.keys(object)
 
ES5.1
Object.keys(object)
 
Names of all enumerable properties(枚举所有的属性名,包括继承过来的)
Underscore
_.allKeys(object)
 
ES2015
Reflect.enumerate(object)  // 返回一个迭代器
 
 
 
 
原文地址:https://www.cnblogs.com/-simplelife/p/8608193.html