Methods
(static) chunk(array, sizeopt) → {Array}
- Description:
将数组拆分成多个
size
长度的区块,并将这些区块组成一个新数组。如果数组无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。
- Source:
- Since:
- 1.0.0
Example
const array = ['a', 'b', 'c', 'd'];
chunk(array, 2); // [['a', 'b'], ['c', 'd']]
chunk(array, 3); // [['a', 'b', 'c'], ['d']]
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
array |
Array | 要处理的数组。 |
||
size |
number |
<optional> |
1
|
每个数组区块的长度。默认 |
Returns:
拆分区块的新数组。
- Type
- Array
(static) compact(array) → {Array}
- Description:
创建一个新数组,包含原数组中所有的非假值元素。
例如
false
null
0
""
undefined
NaN
都被认为是假值。
- Source:
- Since:
- 1.0.0
- See:
Example
compact([0, 1, false, '', 2]); // [1, 2]
Parameters:
Name | Type | Description |
---|---|---|
array |
Array | 待处理的数组。 |
Returns:
过滤掉假值的新数组。
- Type
- Array
(static) difference(array, values, iterateeopt, strictCheckopt) → {Array}
- Description:
创建一个
array
排除values
值的新数组。如果传入迭代函数,会调用数组的每个元素以产生唯一性计算的标准。iteratee
调用时会传入一个参数value
。默认使用了
SameValueZero
做等值比较。如果strictCheck=true
将使用SameValue
做等值比较。
- Source:
- Since:
- 1.0.0
Example
difference([3, 1, 2], [4, 2]); // [3, 1]
difference([3.1, 2.2, 1.3], [4.4, 2.5], Math.floor); // [3.1, 1.3]
difference([{x: 2}, {x: 1}], [{x: 1}], item=>item.x); // [{x: 2}]
// 如果迭代元素为对象,迭代函数可以直接写入对象属性。
difference([{x: 2}, {x: 1}], [{x: 1}], 'x'); // [{x: 2}]
difference([-0, 0], [0]); // []
difference([-0, 0], [0], undefined, true); // [-0]
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
array |
Array | 要检查的数组。 |
||
values |
Array | 排除的值。 |
||
iteratee |
function | string | number | Symbol |
<optional> |
identity
|
迭代函数,调用每个元素。默认 |
strictCheck |
boolean |
<optional> |
false
|
严格比较,区分 |
Returns:
过滤值后的新数组。
- Type
- Array
(static) intersection(array, other, iterateeopt, strictCheckopt) → {Array}
- Description:
创建唯一值的数组,该数组包含两个数组参数都包含的元素(交集)。如果传入迭代函数,会调用数组的每个元素以产生唯一性计算的标准。
iteratee
调用时会传入一个参数value
。默认使用了
SameValueZero
做等值比较。如果strictCheck=true
将使用SameValue
做等值比较。
- Source:
- Since:
- 1.0.0
Example
intersection([2, 1, 1], [4, 2]); // [2]
intersection([2.1, 1.2], [4.3, 2.4], Math.floor); // [2.1]
intersection([{x: 1}, {x: 1}, {x: 2}, {x: 2}], [{x: 1}], item=>item.x); // [{x: 1}]
// 迭代函数可以直接写入属性。
intersection([{x: 1}, {x: 1}, {x: 2}, {x: 2}], [{x: 1}], 'x'); // [{x: 1}]
intersection([-0, 0], [0]); // [-0]
intersection([-0, 0], [0], undefined, true); // [0]
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
array |
Array | 要检查的数组。 |
||
other |
Array | 另一个要检查的数组。 |
||
iteratee |
function | string | number | Symbol |
<optional> |
identity
|
迭代函数,调用每个元素。默认 |
strictCheck |
boolean |
<optional> |
false
|
严格比较,区分 |
Returns:
包含所有传入数组交集元素的新数组。
- Type
- Array
(static) move(array, from, to) → {*}
Example
const arr = ['a', 'b', 'c', 'd'];
move(arr, 0, 1); // ['b', 'a', 'c', 'd']
// 此时 arr 已经变为 ['b', 'a', 'c', 'd']
move(arr, -2, 0); // ['c', 'b', 'a', 'd']
Parameters:
Name | Type | Description |
---|---|---|
array |
Array | 要处理的数组。 |
from |
number | 要移动的元素索引。 |
to |
number | 要移动目标位置的元素索引。 |
Returns:
处理后的原数组。
- Type
- *
(static) nth(array, nopt) → {*}
- Description:
获取类数组的第
n
个元素。如果n
为负数,则返回从数组结尾开始的第n
个元素。同
Array.prototype.at
方法。
- Source:
- Since:
- 1.0.0
Example
const arr = ['a', 'b', 'c', 'd'];
nth(arr, 1); // 'b'
nth(arr, -2); // 'c'
nth('abcd', 1); // 'b'
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
array |
ArrayLike | 要查询的类数组。 |
||
n |
number |
<optional> |
0
|
要返回元素的索引值。默认 |
Returns:
类数组的第 n
个元素。
- Type
- *
(static) shuffle(array) → {Array}
- Description:
创建一个被打乱的数组。使用 Fisher-Yates shuffle 版本。
- Source:
- Since:
- 1.0.0
Example
shuffle([1, 2, 3, 4]); // [2, 4, 3, 1]
shuffle([1, 2, 3, 4]); // [3, 2, 1, 4]
Parameters:
Name | Type | Description |
---|---|---|
array |
Array | 要打乱的数组。 |
Returns:
打乱的数组。
- Type
- Array
(static) union(array, otheropt, iterateeopt, strictCheckopt) → {Array}
- Description:
创建一个按顺序排列的唯一值的数组(并集)。如果传入迭代函数,会调用数组的每个元素以产生唯一性计算的标准。与
uniq
相似。iteratee
调用时会传入一个参数value
。默认使用了
SameValueZero
做等值比较。如果strictCheck=true
将使用SameValue
做等值比较。
- Source:
- Since:
- 1.0.0
Example
union([2], [1, 2]); // [2, 1]
union([2.1], [1.2, 2.3], Math.floor); // [2.1, 1.2]
union([{x: 1}, {x: 1}, {x: 2}, {x: 2}], [{x: 1}], item=>item.x); // [{x: 1}, {x: 2}]
// 迭代函数可以直接写入属性。
union([{x: 1}, {x: 1}, {x: 2}, {x: 2}], [{x: 1}], 'x'); // [{x: 1}, {x: 2}]
union([-0, 0], [-0]); // [-0]
union([-0, 0], [-0], undefined, true); // [-0, 0]
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
array |
Array | 要检查的数组。 |
||
other |
Array |
<optional> |
[]
|
另一个要检查的数组。 |
iteratee |
function | string | number | Symbol |
<optional> |
迭代函数,调用每个元素。 |
|
strictCheck |
boolean |
<optional> |
false
|
严格比较,区分 |
Returns:
新的联合数组。
- Type
- Array
(static) uniq(array, iterateeopt, strictCheckopt) → {Array}
- Description:
创建一个去重后的数组副本。只有第一次出现的元素才会被保留。如果传入迭代函数,会调用数组的每个元素以产生唯一性计算的标准。
iteratee
调用时会传入一个参数value
。默认使用了
SameValueZero
做等值比较。如果strictCheck=true
将使用SameValue
做等值比较。
- Source:
- Since:
- 1.0.0
Example
uniq([2, 1, 2]); // [2, 1]
uniq(['a', NaN, 2, 1, NaN, 'a', 1]); // ['a', NaN, 2, 1]
uniq([{x: 1}, {x: 2}, {x: 1}], item=>item.x); // [{x: 1}, {x: 2}]
// 迭代函数可以直接写入属性。
uniq([{x: 1}, {x: 2}, {x: 1}], 'x'); // [{x: 1}, {x: 2}]
uniq([-0, 0]); // [-0]
uniq([-0, 0], undefined, true); // [-0, 0]
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
array |
Array | 要检查的数组。 |
||
iteratee |
function | string | number | Symbol |
<optional> |
迭代函数,调用每个元素。 |
|
strictCheck |
boolean |
<optional> |
false
|
严格比较,区分 |
Returns:
去重后的新数组。
- Type
- Array
(static) unzip(array) → {Array}
- Description:
与
zip
类似,除了它接受分组元素的数组,并且创建一个数组,分组元素到打包前的结构。(返回数组的第一个元素包含所有的输入数组的第一元素,第二个元素包含了所有的输入数组的第二元素,依此类推。)。
- Source:
- Since:
- 1.0.0
Example
unzip([['barney', 'fred'], [36, 40]]); // [['barney', 36], ['fred', 40]]
unzip([['barney', 36], ['fred', 40]]); // [['barney', 'fred'], [36, 40]]
Parameters:
Name | Type | Description |
---|---|---|
array |
Array | 要处理的分组元素数组。 |
Returns:
重组元素的新数组。
- Type
- Array
(static) xor(array, otheropt, iterateeopt, strictCheckopt) → {Array}
- Description:
创建一个唯一值的数组(并集-交集),该数组包含两个数组参数中不相同的元素。如果传入迭代函数,会调用数组的每个元素以产生唯一性计算的标准。
iteratee
调用时会传入一个参数value
。默认使用了
SameValueZero
做等值比较。如果strictCheck=true
将使用SameValue
做等值比较。
- Source:
- Since:
- 1.0.0
Example
xor([2, 1, 1], [4, 2]); // [1, 4]
xor([2.1, 1.2], [4.3, 2.4], Math.floor); // [1.2, 4.3]
xor([{x: 1}, {x: 1}, {x: 2}, {x: 2}], [{x: 1}], item=>item.x); // [{x: 2}]
// 迭代函数可以直接写入属性。
xor([{x: 1}, {x: 1}, {x: 2}, {x: 2}], [{x: 1}], 'x'); // [{x: 2}]
xor([-0, 0],[0]); // []
xor([-0, 0],[0], undefined, true); // [-0]
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
array |
Array | 要检查的数组。 |
||
other |
Array |
<optional> |
[]
|
另一个要检查的数组。 |
iteratee |
function | string | number | Symbol |
<optional> |
identity
|
迭代函数,调用每个元素。默认 |
strictCheck |
boolean |
<optional> |
false
|
严格比较,区分 |
Returns:
过滤值后的新数组。
- Type
- Array
(static) zip(…array) → {Array}
- Description:
创建一个数组,数组的第一个元素包含所有给定数组的第一元素,第二个元素包含了所有给定数组的第二元素,依此类推。
- Source:
- Since:
- 1.0.0
Example
zip(['barney', 'fred'], [36, 40]); // [['barney', 36], ['fred', 40]]
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
array |
Array |
<repeatable> |
要处理的分组元素数组。 |
Returns:
重组元素的新数组。
- Type
- Array