php loash,lodash常用工具函数总结

lodash和underscore是现在非常流行的两个javascript库,提供了一套函数式编程的实用功能。lodash是一套工具库,内部封装了很多字符串、数组、对象等常见数据类型的处理函数。

下面介绍一下常用的函数

_.chunk(array, [size=1])

定义

将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。 如果array 无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。

参数

array (Array): 需要处理的数组

[size=1] (number): 每个数组区块的长度

返回

(Array): 返回一个包含拆分区块的新数组(相当于一个二维数组)。

示例

_.chunk(['a', 'b', 'c', 'd'], 2);

// => [['a', 'b'], ['c', 'd']]

_.chunk(['a', 'b', 'c', 'd'], 3);

// => [['a', 'b', 'c'], ['d']]

_.compact(array)

定义

创建一个新数组,包含原数组中所有的非假值元素。例如false, null, 0, "", undefined, 和 NaN 都是被认为是“假值”。

参数

array (Array): 待处理的数组

返回

(Array): 返回过滤掉假值的新数组

示例

_.compact([0, 1, false, 2, '', 3]);

// => [1, 2, 3]

_.drop(array, [n=1])

定义

创建一个切片数组,去除array前面的n个元素。(n默认值为1。)

参数

array (Array): 要查询的数组。

[n=1] (number): 要去除的元素个数。

返回

(Array): 返回array剩余切片。

示例

_.drop([1, 2, 3]);

// => [2, 3]

_.drop([1, 2, 3], 2);

// => [3]

_.drop([1, 2, 3], 5);

// => []

_.drop([1, 2, 3], 0);

// => [1, 2, 3]

_.indexOf(array, value, [fromIndex=0])

定义

返回首次 value 在数组array中被找到的 索引值, 如果 fromIndex 为负值,将从数组array尾端索引进行匹配。

参数

array (Array): 需要查找的数组。

value (*): 需要查找的值。

[fromIndex=0] (number): 开始查询的位置。

返回

(number): 返回 值value在数组中的索引位置, 没有找到为返回-1。

示例

_.indexOf([1, 2, 1, 2], 2);

// => 1

// Search from the `fromIndex`.

_.indexOf([1, 2, 1, 2], 2, 2);

// => 3

_.uniq(array)

定义

创建一个去重后的array数组副本。只有第一次出现的元素才会被保留。

参数

array (Array): 要检查的数组。

返回

(Array): 返回新的去重后的数组。

示例

_.uniq([2, 1, 2]);

// => [2, 1]

_.filter(collection, [predicate=_.identity])

定义

遍历 collection(集合)元素,返回 predicate(断言函数)返回真值 的所有元素的数组。 predicate(断言函数)调用三个参数:(value, index|key, collection)。

参数

collection (Array|Object): 一个用来迭代的集合。

[predicate=_.identity] (Array|Function|Object|string): 每次迭代调用的函数。

返回

(Array): 返回一个新的过滤后的数组。

示例

var users = [

{ 'user': 'barney', 'age': 36, 'active': true },

{ 'user': 'fred', 'age': 40, 'active': false }

];

_.filter(users, function(o) { return !o.active; });

// => objects for ['fred']

// The `_.matches` iteratee shorthand.

_.filter(users, { 'age': 36, 'active': true });

// => objects for ['barney']

// The `_.matchesProperty` iteratee shorthand.

_.filter(users, ['active', false]);

// => objects for ['fred']

// The `_.property` iteratee shorthand.

_.filter(users, 'active');

_.reject(collection, [predicate=_.identity])

定义

_.filter的反向方法;此方法 返回 predicate(断言函数) 不 返回 true(真值)的collection(集合)元素(非真)。

参数

collection (Array|Object): 用来迭代的集合。

[predicate=_.identity] (Array|Function|Object|string): 每次迭代调用的函数。

返回

(Array): 返回过滤后的新数组

示例

var users = [

{ 'user': 'barney', 'age': 36, 'active': false },

{ 'user': 'fred', 'age': 40, 'active': true }

];

_.reject(users, function(o) { return !o.active; });

// => objects for ['fred']

// `_.matches` 迭代简写

_.reject(users, { 'age': 40, 'active': true });

// => objects for ['barney']

// `_.matchesProperty` 迭代简写

_.reject(users, ['active', false]);

// => objects for ['fred']

// `_.property` 迭代简写

_.reject(users, 'active');

// => objects for ['barney']

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值