Collection

集合

Description:
  • 集合

Source:
Since:
  • 1.0.0

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

每次迭代调用的函数。默认 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

每次迭代调用的函数。默认 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

每次迭代调用的函数。默认 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

每次迭代调用的函数。默认 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

每次迭代调用的函数。默认 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

迭代函数,用来转换键。默认 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

迭代函数,用来转换键。默认 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

每次迭代调用的函数。默认 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:
  • 创建一个分成两组的元素数组,第一组包含 predicate(断言函数)返回为 Truthy(真值)的元素,第二组包含 predicate(断言函数)返回为 Falsy(假值)的元素。

    predicate 调用时会传入三个参数 value index|key collection

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

每次迭代调用的断言函数。默认 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

每次迭代调用的函数。默认 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

每次迭代调用的函数。默认 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

每次迭代调用的函数。默认 identity

Returns:

如果任一元素通过 predicate 测试,则返回 true,否则返回 false

Type
boolean