Methods
(inner) lastItem(arr) → {*}
- Source:
获取数组的最后一个值
Example
let value = U.lastItem([1, 1, 2, 3])
// => 3
let value = U.lastItem([])
// => undefined
Parameters:
Name |
Type |
Description |
arr |
array
|
源数组 |
Returns:
-
Type
-
*
(inner) uniqueItems(arr) → {array}
- Source:
数组去重,返回无重复值的新数组。
Example
let arr = [1, 1, 2, 3, 3, 4, 5]
arr = U.uniqueItems(arr)
// => [1, 2, 3, 4, 5]
Parameters:
Name |
Type |
Description |
arr |
array
|
需要去重的源数组 |
Returns:
-
Type
-
array
(inner) uniqueItemsBy(arr, fn, isRightopt) → {array}
- Source:
根据提供的比较器函数返回数组的所有唯一值。
Example
U.uniqueItemsBy([
{ id: 0, value: 'a' },
{ id: 1, value: 'b' },
{ id: 2, value: 'c' },
{ id: 0, value: 'd' }
],
(a, b) => a.id == b.id)
// => [{ id: 0, value: 'a' }, { id: 1, value: 'b' }, { id: 2, value: 'c' }]
U.uniqueItemsBy([
{ id: 0, value: 'a' },
{ id: 1, value: 'b' },
{ id: 2, value: 'c' },
{ id: 0, value: 'd' }
],
(a, b) => a.id == b.id,
true)
// => [{ id: 0, value: 'd' }, { id: 2, value: 'c' }, { id: 1, value: 'b' }]
Parameters:
Name |
Type |
Attributes |
Default |
Description |
arr |
array
|
|
|
数组 |
fn |
function
|
|
|
比较器函数
Properties
Name |
Type |
Description |
a |
*
|
比较元素 |
b |
*
|
比较元素 |
|
isRight |
boolean
|
<optional>
|
false
|
可选,默认false,是否从数组最后一个元素开始比较 |
Returns:
-
Type
-
array
(inner) repeatItems(arr) → {array}
- Source:
检索数组重复元素,返回新数组。
Example
U.repeatItems([1, 1, 2, 3, 3, 4, 5])
// => [1, 3]
Parameters:
Name |
Type |
Description |
arr |
array
|
数组 |
Returns:
-
Type
-
array
(inner) initArray(len, val|fnopt) → {array}
- Source:
初始化一个给定长度以及值的数组。当映射是一个函数时提供迭代的i和数组长度len两个参数。
Example
console.log(U.initArray(3))
// => [null, null, null]
const arr = U.initArray(3, {a: 1, b: 2})
// => [ { a: 1, b: 2 }, { a: 1, b: 2 }, { a: 1, b: 2 } ]
const arr = U.initArray(3, (i) => i * 2)
// => [ 0, 2, 4 ]
Parameters:
Name |
Type |
Attributes |
Default |
Description |
len |
number
|
|
|
数组长度 |
val|fn |
*
|
function
|
<optional>
|
null
|
可选,数组元素的映射值,默认为null;当映射是一个函数时,该函数参数如下表:
Properties
Name |
Type |
Description |
index |
number
|
可选,数组中正在处理的当前元素的索引 |
length |
number
|
可选,数组的长度 |
|
Returns:
-
Type
-
array
(inner) mapObject(arr, fn) → {object}
- Source:
使用函数将数组的值映射到对象,其中键 - 值对由数组原始值作为键和映射值组成。
Example
const obj = U.mapObject([1, 2, 3], i => i * 2)
// => {1: 2, 2: 4, 3: 6}
Parameters:
Name |
Type |
Description |
arr |
array
|
对象键名的数组 |
fn |
function
|
生成对象值的映射函数
Properties
Name |
Type |
Description |
currentValue |
*
|
数组中正在处理的当前元素 |
index |
number
|
可选,数组中正在处理的当前元素的索引 |
array |
array
|
可选,当前正在处理的数组 |
|
Returns:
-
Type
-
object
(inner) averageBy(arr, fn) → {number}
- Source:
求数组内元素特定键或键映射的平均值
Example
const arr = [{a: 1, b: 2}, {a: 2, b: 4}]
U.averageBy(arr, 'a')
// => 1.5
U.averageBy(arr, o => o.a * o.b)
// => 5
Parameters:
Name |
Type |
Description |
arr |
array
|
求值数组 |
fn |
function
|
string
|
键值运算映射函数或键名 |
Returns:
-
Type
-
number
(inner) maxBy(arr, fn) → {number}
- Source:
求数组内元素特定键或键映射的最大值
Example
const arr = [{a: 1, b: 2}, {a: 2, b: 4}]
U.max(arr, 'a')
// => 2
U.maxBy(arr, o => o.a * o.b)
// => 8
Parameters:
Name |
Type |
Description |
arr |
array
|
求值数组 |
fn |
function
|
string
|
键值运算映射函数或键名 |
Returns:
-
Type
-
number
(inner) minBy(arr, fn) → {number}
- Source:
求数组内元素特定键或键映射的最小值
Example
const arr = [{a: 1, b: 2}, {a: 2, b: 4}]
U.minBy(arr, 'a')
// => 1
U.minBy(arr, o => o.a * o.b)
// => 2
Parameters:
Name |
Type |
Description |
arr |
array
|
求值数组 |
fn |
function
|
string
|
键值运算映射函数或键名 |
Returns:
-
Type
-
number
(inner) chunk(arr, size) → {array}
- Source:
将数组切割分组函数
Example
chunk([1, 2, 3, 4, 5], 2)
=> [[1,2],[3,4],[5]]
Parameters:
Name |
Type |
Description |
arr |
array
|
切割的数组 |
size |
number
|
切割数组的长度 |
Returns:
-
Type
-
array