array.js 说明

文件说明:数组操作集合

示例代码:

import $array from '@/common/js/array.js'
var lists = ['桌子', '椅子', '电视', '空调', '冰箱']
// 从数组中随机抽取二个元素
var getRnd = $array.rnd(lists, 2)

 

方法列表:

1 @name $array.isArray(value)
2 @说明: 是否是数组类型
3 @return: [Boolean]

 

1 @name $array.included(el, array)
2 @说明: 指定元素在数组内出现次数
3 @return: [Number] 

 

@name $array.insert(array, index, el)
@说明:在数组指定位置处插入元素,它不会更改原数组
@params:
    array  数组 
    index 指定位置,值从0开始
    el      要插入的元素
@return: [Array] 返回插入后的数组

 

1 @name $array.repeatFilter(array)
2 @说明: 返回过滤重复项后的数组
3 @return: [Array] 

 

 1 @name $array.rnd(value, nums)
 2 @说明: 从数组中随机取出元素
 3 
 4 @params:
 5     value [Array 必需] 数组
 6     nums [Number 可选] 不设置时取出一个元素,否则取出指定个数的元素,并返回数组格式
 7 
 8 @return: [Array]
 9     当nums为1或不设置时,返回该元素值
10     当nums>1时,返回数组类型

 

 1 @name 数组排序
 2 @name $array.asc(array, key) 顺序
 3 @name $array.desc(array, key)  倒序
 4 @params:
 5     array [Array 必需] 数组,支持字符串、数字、Object、日期
 6     key [String 可选] 如果数组元素是json类型时,key表示检索key名
 7 
 8 @return: [Array]
 9  
10 @example:
11     var arr = [1,56,12,68,10] ;
12     var ascArr = $array.asc(arr) // 表示升序
13     //
14     var arr = [{id:312, name:'张三'}, {id:21, name:'李四'}] ;
15     var ascArr = $array.asc(arr, 0) // 表示按ID升序

 

@name $array.rndSort()
@说明:返回随机打乱排序后的数组
@return: [Array] 

 

 

系统内置数组操作也很强大,功能如下:

@name array.length
@说明: 返回当前数组长度

 

1 @name array.join(p=[String 可选])
2 @说明: 将数组转换成字符串,每个元素间用参数p分隔
@return: [String]

 

1 @name array.reverse()
2 @说明: 颠倒数组中元素的顺序。它会更新原数组
3 @return: [Array] 颠倒后的数组

 

1 @name string.split(separator,limit)
2 @说明: 将字符串转成数组
3 @params:
4      separator [String 可选] 字符串或正则表达式,从该参数指定的地方分割
5      limit [Number 可选]   返回的数组的最大长度
6 @return: [Array] 数组

 

@以下是增加或删除元素相关方法

1 @name array.concat(array1, array2, ..., arrayX)
2 @说明: 返回当前数组结尾处追加元素后的数组,它不直接更新array
3 @return:[Aray] 新数组

 

1 @name array.push(ele1, ele2, ele3, ..., eleX)
2 @说明: 在当前数组结尾处追加元素,它是直接更新array,注意与 concat的区别
3 @return: [Number]新数组的长度值

 

1 @name array.unshift(ele1, ele2, ele3, ..., eleX)
2 @说明: 在当前数组最前处追加元素,它是直接更新array
3 @return: [Number] 新数组的长度值

 

 1 @name array.splice(index, howmany, item1, ....., itemX)
 2 @说明:从数组添加/删除项目,并返回删除的项目。
 3 
 4 @params:
 5     index [Number 必需] 起始位置
 6     howmany [Number 可选] 要删除元素个数。 不设置时表示后面所有元素
 7      item1,...itemX 在被删除的位置处,增加的元素
 8 
 9 @return:[Array] 返回被删除的元素
10 @注意: 此函数会更新原数组,函数返回被删除的元素

 

1 @name array.slice(start, end)
2 @说明:已有的数组中返回选定的元素。注意它与splice的区别。它不会更改原数组
3 
4 @params:
5     start [Number 可选] 规定从何处开始选取。如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。
6     end [Number 可选] 规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。
7 
8 @return:[Array] 返回被选取的元素

 

@以下是数组元素过滤相关方法

// 循环数组元素
arr.forEach((item,index)=>{
})

 

 1 @name array.every((el, index, thisArray)=>{  return true|false })
 2 @说明: 检测数组中的元素是否都符合条件,只要有一条不符合条件返回false,且剩余的元素不会再进行检测。
 3 @返回:[true|false]
4 @example: 5 let array = [1,3,5, 134,623,77] 6 let checkInt = array.every((el, index, thisArray)=>{ 7 // @el当前元素 8 // @index当前元素索引 9 // @thisArray当前数组 10 return $number.isInt(el, 1) 11 }) 12 console.log(checkInt);

 

 1 @name array.some((el, index, thisArray)=>{  return true|false })
 2 @说明: 检测数组中是否含有满足条件的元素,只要有一个元素满足条件则返回true,且剩余的元素不会再进行检测。
 3 @返回: [true|false]
 4 
 5 @example:
 6     let array = [1,3,5, 134,623,77]
 7     let checkInt = array.some((el, index, thisArray)=>{
 8        // @el当前元素
 9        // @index当前元素索引
10        // @thisArray当前数组
11         return $number.isInt(el, 1)
12     })
13     console.log(checkInt);

 

 1 @name array.map((el, index, thisArray)=>{  return true|false })
 2 @说明: 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
 3 @return: [Array]
 4 
 5 @example:
 6     let array = [1,3,5, 134,623,77]
 7     let newArray = array.map((el, index, thisArray)=>{
 8         // @el当前元素
 9         // @index当前元素索引
10         // @thisArray当前数组
11         return index + ':' + el
12     })
13     console.log(newArray);

 

 1 @name array.filter((el, index, thisArray)=>{  return true|false })
 2 @说明: 找出数组中符合条件的元素,返回这些元素
 3 @return: [Array]
 4 
 5 @example:
 6     let array = [1,3,5, 134,623,77]
 7     let newArray = array.filter((el, index, thisArray)=>{
 8         // @el当前元素
 9         // @index当前元素索引
10         // @thisArray当前数组
11         return el > 10
12     })
13     console.log(newArray);

 

 1 @name array.reduce((total, el, index, thisArray)=>{  return ... })
 2 @说明: 将数组内的每个元素从左到右执行计算,并返回最终的计算结果
 3 @注意默认第一次执行时total是第一个元素el是第二个元素
 4 @return: [任意类型]
 5 
 6 @example:
 7     let array = [1,3,5, 134,623,77] 
 8     let allTotal = array.reduce((total, el, index, thisArray)=>{ // 它是从第二个元素开始循环
 9         // @total计算结果值  默认第一次循环时total是array的第一个元素,即1.
10         // @el当前元素
11         // @index当前元素索引
12         // @thisArray当前数组
13         return total + el
14     })
15     console.log(allTotal);

 

 1 @name array.reduceRight((total, el, index, thisArray)=>{  return ... })
 2 @说明: 与reduce功能一样,不过它是从右到左开始计算
 3 @example:
 4     let array = [1,3,5, 134,623,77]
 5     let allTotal = array.reduceRight((total, el, index, thisArray)=>{
 6         // @total计算结果值
 7         // @el当前元素
 8         // @index当前元素索引
 9         // @thisArray当前数组
10         return total + el
11     })
12     console.log(allTotal);

 

@name $array.rndSort()
@说明:返回随机打乱排序后的数组
@return: [Array] 
posted @ 2022-09-07 10:52  1024记忆  阅读(41)  评论(0编辑  收藏  举报