Methods
(static) countBy(collection, iterateeopt) → {Object}
- Description:
创建一个组成对象,
key
是经过iteratee
执行处理collection
中每个元素后返回的结果,每个key
对应的值是iteratee
返回该key
的次数。iteratee
调用时会传入三个参数value
index|key
collection
。
- Source:
- Since:
- 1.0.0
Example
countBy([6, 4, 6]); // {'6': 2, '4': 1}
countBy([6.1, 4.2, 6.3], Math.floor); // {'6': 2, '4': 1}
countBy([{n: 6.1}, {n: 4.2}, {n: 6.3}], item=>Math.floor(item.n)); // {'6': 2, '4': 1}
// 迭代函数可以直接写入属性。
countBy(['one', 'two', 'three'], 'length'); // {'3': 2, '5': 1}
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
collection |
ArrayLike.<any> | object | 一个用来迭代的集合。 |
||
iteratee |
function | string | number | Symbol |
<optional> |
identity
|
迭代函数,用来转换键。 |
Returns:
组成集合对象。
- Type
- Object
(static) every(collection, predicateopt) → {boolean}
- Description:
迭代集合中的元素执行
predicate
函数,如果全部元素都通过predicate
返回真值,则返回true
,否则停止迭代并返回false
。predicate
调用时会传入三个参数value
index|key
collection
。
- Source:
- Since:
- 1.7.0
Example
const arr = [1, 2, 3, 4, 5, 6];
every(arr, item => item % 2 === 0); // false
every(arr); // true
const obj = { one: 1, two: 2, three: 3 };
every(obj, item => item > 1); // false
every(obj, item => item > 0); // true
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
collection |
ArrayLike.<any> | Object | 要迭代的集合。 |
||
predicate |
function |
<optional> |
identity
|
每次迭代调用的函数。默认 |
Returns:
如果全部元素都通过 predicate
测试,则返回 true
,否则返回 false
。
- Type
- boolean
(static) filter(collection, predicateopt) → {Array}
- Description:
过滤集合元素,为每个元素执行
predicate
函数,返回真值的元素将保留在结果数组中(不改变原值)。predicate
调用时会传入三个参数value
index|key
collection
。
- Source:
- Since:
- 1.7.0
Example
const arr = [1, 2, 3, 4, 5, 6];
filter(arr, item => item % 2 === 0); // [2, 4, 6]
const obj = { one: 1, two: 2, three: 3 };
filter(obj, item => item > 1); // [2, 3]
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
collection |
ArrayLike.<any> | Object | 要迭代的集合。 |
||
predicate |
function |
<optional> |
identity
|
每次迭代调用的函数。默认 |
Returns:
返回新的过滤数组。
- Type
- Array
(static) find(collection, predicateopt) → {ArrayLike.<any>|Object}
- Description:
迭代集合中的元素执行
predicate
函数,返回第一个通过predicate
返回真值的元素(停止迭代),如果都不通过返回undefined
。predicate
调用时会传入三个参数value
index|key
collection
。
- Source:
- Since:
- 1.7.0
Example
const arr = [1, 2, 3, 4, 5, 6];
find(arr, item => item % 2 === 0); // 2
const obj = { one: 1, two: 2, three: 3 };
find(obj, item => item > 1); // 2
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
collection |
ArrayLike.<any> | Object | 要迭代的集合。 |
||
predicate |
function |
<optional> |
identity
|
每次迭代调用的函数。默认 |
Returns:
返回第一个通过 predicate
返回真值的元素,否则返回 undefined
。
- Type
- ArrayLike.<any> | Object
(static) forEach(collection, iterateeopt) → {ArrayLike.<any>|Object}
- Description:
迭代集合元素,为每个元素调用
iteratee
。iteratee
函数可以通过显式返回false
来提前退出迭代。iteratee
调用时会传入三个参数value
index|key
collection
。
- Source:
- Since:
- 1.7.0
Example
forEach([1,2,3], function(item){
console.log(item);
});
// 1
// 2
// 3
forEach({a: 1, b: 2}, function(value, key){
console.log(value, key);
});
// 1 'a'
// 2 'b'
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
collection |
ArrayLike.<any> | Object | 要迭代的集合。 |
||
iteratee |
function |
<optional> |
identity
|
每次迭代调用的函数。默认 |
Returns:
迭代集合本身。
- Type
- ArrayLike.<any> | Object
(static) forEachRight(collection, iterateeopt) → {ArrayLike.<any>|Object}
- Description:
迭代集合元素(从右往左的顺序),为每个元素调用
iteratee
。iteratee
函数可以通过显式返回false
来提前退出迭代。iteratee
调用时会传入三个参数value
index|key
collection
。
- Source:
- Since:
- 1.7.0
Example
forEachRight([1,2,3], function(item){
console.log(item);
});
// 3
// 2
// 1
forEachRight({a: 1, b: 2}, function(value, key){
console.log(value, key);
});
// 2 'b'
// 1 'a'
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
collection |
ArrayLike.<any> | Object | 要迭代的集合。 |
||
iteratee |
function |
<optional> |
identity
|
每次迭代调用的函数。默认 |
Returns:
迭代集合本身。
- Type
- ArrayLike.<any> | Object
(static) groupBy(collection, iterateeopt) → {Object}
- Description:
创建一个组成聚合对象,
key
是经过iteratee
执行处理collection
中每个元素后返回的结果。分组值的顺序是由他们出现在collection
的顺序确定的。每个键对应的值负责生成key
的元素组成的数组。iteratee
调用时会传入三个参数value
index|key
collection
。
- Source:
- Since:
- 1.0.0
Example
groupBy([6, 4, 6]); // {'6': [6, 6], '4': [4]}
groupBy([6.1, 4.2, 6.3], Math.floor); // {'6': [6.1, 6.3], '4': [4.2]}
groupBy([{n: 6.1}, {n: 4.2}, {n: 6.3}], item=>Math.floor(item.n)); // {'6': [{n: 6.1}, {n: 6.3}], '4': [{n: 4.2}]}
// 迭代函数可以直接写入属性。
groupBy(['one', 'two', 'three'], 'length'); // {'3': ['one', 'two'], '5': ['three']}
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
collection |
ArrayLike.<any> | Object | 一个用来迭代的集合。 |
||
iteratee |
function | string | number | Symbol |
<optional> |
identity
|
迭代函数,用来转换键。默认 |
Returns:
组成聚合对象。
- Type
- Object
(static) keyBy(collection, iterateeopt) → {Object}
- Description:
创建一个组成聚合对象,
key
是经过iteratee
执行处理collection
中每个元素后返回的结果。每个key
对应的值是生成key
的最后一个元素。iteratee
调用时会传入三个参数value
index|key
collection
。
- Source:
- Since:
- 1.0.0
Example
keyBy([6, 4, 6]); // {'6': 6, '4': 4}
keyBy([6.1, 4.2, 6.3], Math.floor); // {'6': 6.3, '4': 4.2}
keyBy([{n: 6.1}, {n: 4.2}, {n: 6.3}], item=>Math.floor(item.n)); // {'6': {n: 6.3}, '4': {n: 4.2}}
// 迭代函数可以直接写入属性。
keyBy(['one', 'two', 'three'], 'length'); // {'3': 'two', '5': 'three'}
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
collection |
ArrayLike.<any> | Object | 一个用来迭代的集合。 |
||
iteratee |
function | string | number | Symbol |
<optional> |
identity
|
迭代函数,用来转换键。默认 |
Returns:
组成聚合对象。
- Type
- Object
(static) map(collection, iterateeopt) → {Array}
- Description:
创建一个新数组,这个数组的值由迭代集合每个元素调用
iteratee
函数的返回值组成。iteratee
调用时会传入三个参数value
index|key
collection
。
- Source:
- Since:
- 1.7.0
Example
const arr = [1, 2, 3];
map(arr, item => item * 3); // [3, 6, 9]
const obj = { one: 1, two: 2, three: 3 };
map(obj, item => item * 3); // [3, 6, 9]
map([[1, 2], [3, 4]], item=>item[0]); // [1, 3]
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
collection |
ArrayLike.<any> | Object | 要迭代的集合。 |
||
iteratee |
function |
<optional> |
identity
|
每次迭代调用的函数。默认 |
Returns:
一个新数组。
- Type
- Array
(static) orderBy(collection, iterateesopt, ordersopt) → {Array}
- Description:
创建一个元素数组,以迭代函数处理的结果排序。如果没有指定排序,默认为升序排序。
asc
升序,desc
降序,默认执行稳定排序,也就是说相同元素会保持原始排序。iteratee
调用时会传入三个参数value
index|key
collection
。
- Source:
- Since:
- 1.0.0
- See:
Example
const array = [2, 1, 3, 5, 4];
orderBy(array);; // [1, 2, 3, 4, 5]
orderBy(array, item=>item, 'desc');; // [5, 4, 3, 2, 1]
const objects = [
{ a: 'x', b: 3 },
{ a: 'y', b: 4 },
{ a: 'x', b: 1 },
{ a: 'y', b: 2 }
];
orderBy(objects, 'b');
// [{ a: 'x', b: 1 },{ a: 'y', b: 2 },{ a: 'x', b: 3 },{ a: 'y', b: 4 }]
// 迭代函数可以直接写入属性。
orderBy(objects, ['a', 'b'], ['asc', 'desc']);
// [{ a: 'x', b: 3 },{ a: 'x', b: 1 },{ a: 'y', b: 4 },{ a: 'y', b: 2 }]
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
collection |
ArrayLike.<any> | Object | 一个用来迭代的集合。 |
|
iteratees |
function | string | number | Symbol | Array |
<optional> |
排序的迭代函数。 |
orders |
'asc' | 'desc' | Array |
<optional> |
迭代函数的排序顺序。 |
Returns:
排序后的新数组。
- Type
- Array
(static) partition(collection, predicateopt) → {Array}
- Description:
- Source:
- Since:
- 1.0.0
- See:
Example
const users = [
{ user: 'barney', age: 36, active: false },
{ user: 'fred', age: 40, active: true },
{ user: 'pebbles', age: 1, active: false }
];
partition(users, item => item.active);
// [
// [{ user: 'fred', age: 40, active: true }],
// [{ user: 'barney', age: 36, active: false }, { user: 'pebbles', age: 1, active: false }]
// ]
// 迭代函数可以直接写入属性。
partition(users, 'active');
// [
// [{ user: 'fred', age: 40, active: true }],
// [{ user: 'barney', age: 36, active: false }, { user: 'pebbles', age: 1, active: false }]
// ]
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
collection |
ArrayLike.<any> | Object | 一个用来迭代的集合。 |
||
predicate |
function | string | number | Symbol | Array |
<optional> |
identity
|
每次迭代调用的断言函数。默认 |
Returns:
分组后的数组。
- Type
- Array
(static) reduce(collection, iterateeopt, initialValueopt) → {*}
- Description:
对每个元素调用
iteratee
函数,每一次运行iteratee
会将元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。如果没有提供第三个参数值,则集合中的第一个元素将用作初始值。
iteratee
调用时会传入四个参数accumulator
value
index|key
collection
。
- Source:
- Since:
- 1.7.0
Example
reduce([1,2,3], function(accumulator, current, index){
return accumulator + current;
}, 0);
// 6
reduce({a: 1, b: 2, c: 3}, function(accumulator, current, key){
return accumulator + current;
}, 0);
// 6
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
collection |
ArrayLike.<any> | Object | 要迭代的集合。 |
||
iteratee |
function |
<optional> |
identity
|
每次迭代调用的函数。默认 |
initialValue |
* |
<optional> |
初始值。 |
Returns:
累计值。
- Type
- *
(static) reduceRight(collection, iterateeopt, initialValueopt) → {*}
- Description:
对每个元素(从右往左的顺序)调用
iteratee
函数,每一次运行iteratee
会将元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。如果没有提供第三个参数值,则集合中的第一个元素将用作初始值。
iteratee
调用时会传入四个参数accumulator
value
index|key
collection
。
- Source:
- Since:
- 1.7.0
Example
reduceRight([1,2,3], function(accumulator, current, index){
return accumulator + current;
}, 0);
// 6
reduceRight({a: 1, b: 2, c: 3}, function(accumulator, current, key){
return accumulator + current;
}, 0);
// 6
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
collection |
ArrayLike.<any> | Object | 要迭代的集合。 |
||
iteratee |
function |
<optional> |
identity
|
每次迭代调用的函数。默认 |
initialValue |
* |
<optional> |
初始值。 |
Returns:
累计值。
- Type
- *
(static) some(collection, predicateopt) → {boolean}
- Description:
迭代集合中的元素执行
predicate
函数,如果任一元素通过predicate
返回真值,则停止迭代并返回true
,否则返回false
。predicate
调用时会传入三个参数value
index|key
collection
。
- Source:
- Since:
- 1.7.0
Example
const arr = [1, 2, 3, 4, 5, 6];
some(arr, item => item % 2 === 0); // false
const obj = { one: 1, two: 2, three: 3 };
some(obj, item => item > 1); // true
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
collection |
ArrayLike.<any> | Object | 要迭代的集合。 |
||
predicate |
function |
<optional> |
identity
|
每次迭代调用的函数。默认 |
Returns:
如果任一元素通过 predicate
测试,则返回 true
,否则返回 false
。
- Type
- boolean