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]