Lodash 操作数组

香菊网 发表于: 2019-06-10 分类: 前端front  软件soft  H5部分  

在ES6盛行,ES78马上就要出来的情况下;我们还是需要懂得一些工具库的使用,比较推荐的是lodash。lodash是一个一致性、模块化、高性能的 JavaScript 实用工具库。

安装

cdn:

<script src="lodash.js"></script>

npm:

$ npm i -g npm
$ npm i --save lodash

nodeJs

var _ = require('lodash');
var _ = require('lodash/core');

var fp = require('lodash/fp');
var array = require('lodash/array');
var object = require('lodash/fp/object');
 
// Cherry-pick methods for smaller browserify/rollup/webpack bundles.
var at = require('lodash/at');
var curryN = require('lodash/fp/curryN');

栗子:

1.chunk,将数组进行切分。(也是官网的第一个函数)

const arr = [1,2,3,4,5,6,7,8,9];
_.chunk(arr,2);
// =>[[1,2],[3,4],[5,6],[7,8],[9]]

2.compact,去除假值。(将所有的空值,0,NaN过滤掉)

_.compact(['1','2',' ',0])
// => ['1','2']

3.uniq,数组去重。(将数组中的对象去重,只能是数组去重,不能是对象去重。)

_.uniq([1,1,3])
// => [1,3]

4.filter和reject,过滤集合,传入匿名函数。(二者放在一起讨论的原因是,两个函数类似但返回的值是相反。)

_.filter([1,2],x => x = 1)
// => [1]
 
_.reject([1,2],x => x=1)
// => [2]

5.map和forEach,数组遍历。(相似)

_.map([1,2],x => x+1)
// => [2,3]

6.merge,参数合并。(merge函数像是Git的merge分支操作一样,将两个参数合并在一起。)

var object = {
  'a': [{ 'b': 2 }, { 'd': 4 }]
};
 
var other = {
  'a': [{ 'c': 3 }, { 'e': 5 }]
};
 
_.merge(object, other);
// => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }

7.extend,类似参数对象合并。

function Foo() {
  this.a = 1;
}
 
function Bar() {
  this.c = 3;
}
 
Foo.prototype.b = 2;
Bar.prototype.d = 4;
 
_.assignIn({ 'a': 0 }, new Foo, new Bar);
// => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }

8.cancat,数组连接

var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
 
console.log(other);
// => [1, 2, 3, [4]]
 
console.log(array);
// => [1]

9.keys ,取出对象中所有的key值组成新的数组。

function Foo() {
  this.a = 1;
  this.b = 2;
}
 
Foo.prototype.c = 3;
 
_.keys(new Foo);
// => ['a', 'b'] (iteration order is not guaranteed)
 
_.keys('hi');
// => ['0', '1']
标签: 前端front软件softH5部分
Copyright © 2019 幻雨焉缘博客 | 浙ICP备19001843号-1
----------------------------------
种一棵树,最好的培养时间是十年前,其次是现在 加油  (ง •_•)ง。        ──── 前端攻城狮