美文网首页
JavaScript中的undersocre

JavaScript中的undersocre

作者: 鱿鱼炸酱面 | 来源:发表于2021-07-05 13:59 被阅读0次

JavaScript中第三方库underscore提供了一套完善的函数式编程的接口,与jQuery类似,它会把自身绑定到唯一的全局变量_上,这也是为何它的名字叫underscore.
比如,underscore的map()可以作用与Array和Object:

_.map([1, 2, 3], (x) => x * x); // [1, 4, 9]
_.map({ a: 1, b: 2, c: 3 }, (v, k) => k + '=' + v); // ['a=1', 'b=2', 'c=3']

1.Collections

对集合类对象提供的接口,仅支持Array和Object,不支持Map和Set

map/mapObject  //返回映射/对象映射后的集合类对象,传入callback
filter  //返回过滤后的集合类对象,传入callback
every / some  //返回是否所有元素的布尔值/返回是否有>1个元素符合的布尔值,传入callback
max / min  //返回最大值/最小值
groupBy  // 返回分组后的集合类对象,传入callback
shuffle / sample  // 返回打乱顺序后集合类对象/返回随机取指定个数元素的集合类对象

2.Arrays

对array提供的函数

first / last  //取array的第一个值和最后一个值
flatten  //将多维array展开为一维
zip / unzip  //将两个array压缩成二维列表/unzip相反
object  //类似zip,但将两个array转为object
range  // 类似python,快速生成一个array

3.Functions

对函数提供的函数

bind(object.function, object)  // 返回一个新的函数,该函数可以调用原对象的函数功能,传入一个对象的函数和对象本身,
partial  // 返回一个固定了某个参数的新函数,称为偏函数,用法与python一致
memoize   //返回一个新函数,该函数可以实现缓存原函数之前相同的调用结果
once  // 返回一个新函数,该函数可以保证某个函数执行且仅执行一次
delay  // 可以让一个函数延迟执行,效果和setTimeout()一样

4.Objects

针对Object的功能接口

keys / allKeys  //返回对象的key的array,包含/不包含原型链继承的key
values  //返回对象不包含原型链的value的array
mapObject  //针对对象的map方法
invert  //交换key和value
extend / extendOwn  // 将多个对象合为一个, extendOwn不包含原型链继承的
clone  //浅拷贝一个对象
isEqual  //返回布尔值,对两个对象进行深度比较

Chaining

Chaining是指链式调用
underscore提供了把对象包装成能进行链式调用的方法,就是chain()函数:

var r = _.chain([1, 4, 9, 16, 25])
         .map(Math.sqrt)
         .filter(x => x % 2 === 1)
         .value();
console.log(r); // [1, 3, 5]

因为每一步返回的都是包装对象,所以最后一步的结果需要调用value()获得最终结果。

相关文章

  • JavaScript中的undersocre

    JavaScript中第三方库underscore提供了一套完善的函数式编程的接口,与jQuery类似,它会把自身...

  • 1body中添加js

    1 中的 JavaScript JavaScript 函数和事件上面例子中的 JavaScript 语句,会...

  • JS中的类型转换

    JavaScript 中的类型转换 JavaScript 基本数据类型 JavaScript 中的一共有 8 中内...

  • js中的this

    javascript中的this javascript中的this与java中的this有点不同。ECMAScri...

  • JavaScript中的字符串

    @(javascript)[js字符串][toc] JavaScript中的字符串 字符串是JavaScript中...

  • 06-JavaScript数组和函数

    JavaScript数组 JavaScript中的数组可以存储不同类型的数据 JavaScript中的数组是引用类...

  • Client's JavaScript

    什么是JavaScript? JavaScript的运行环境? 浏览器中JavaScript可以做什么? 浏览器中...

  • javascript中的this

    一般说到JS的this,都会想起在函数中变来变去的this。但是事情的发生都是有规则的约束,JS中的this也不例...

  • JavaScript中的this

    什么是this? 首先对this的下个定义:this是在执行上下文创建时确定的一个在执行过程中不可更改的变量。th...

  • JavaScript中的this

    JavaScript中的this很容易让人迷惑,但弄清楚后其实还是很好区分的。JavaScript中的this总是...

网友评论

      本文标题:JavaScript中的undersocre

      本文链接:https://www.haomeiwen.com/subject/fxzbultx.html