Array

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