ArrayUtils 数组工具类
GC内部封装的一些常用数组方法
维护人员:黑暗之神KDS
创建时间:2018-01-01
继承 无
子类 无
Public 方法
方法 |
---|
randOrder(arr : any): void 静态数组内随机打乱排序 |
insert(arr : any, index : number, ...arg : any): number 静态添加数据 |
delete(arr : any, index : number): any 静态删除数据 |
remove(arr : any, obj : any): any 静态移除数据,返回新的数组 |
removeSameObjectD2(arr : any, attrName : string, ifNullIgnore : boolean): any 静态剔除相同的元素,根据子元素属性是否相同,返回新的数组 |
get(arr : any, index : number): any 静态获取数据 |
set(arr : any, index : number, paramValue : any): any 静态更改数据中的值 |
insertToNullPosition(arr : any, obj : any): number 静态插入数据 找到空值或添加 |
getNullPosition(arr : any, startIndex? : number): number 静态找到一个空的位置 |
removeSameObject(arr : any): any 静态剔除相同的元素 |
matchAttributes(arr : any, matchData : any, onlyOne : boolean, symbol? : string, indexOfMode? : boolean): any 静态匹配数据,如在一组对象的数据中,筛选出对象中含有的某些属性值为多少的对象集合 |
matchAttributesD2(arr : any, attribute : string, matchData : any, onlyOne : boolean, symbol? : string): any 静态匹配数据 深度2,用于匹配对象中的对象是否含有该属性 |
matchAttributesD3(arr : any, attribute : string, attribute2 : string, matchData : any, onlyOne : boolean, symbol? : string): any 静态匹配数据 深度3 |
getChildAttributeToCreateArray(arr : any, attributeName : string, ignoreNullChild? : boolean): any 静态获取对象/数组内对象的指定属性的值组成一个新的数组 |
getElementSize(arr : any, value : any): number 静态获取数组中元素出现的个数 |
createObjects(objCls: any, size: number, onCreateOne?: (index : number, obj : any) => void, arr? : any): any 静态批量装载创建对象 |
swap(arr : any, index1 : number, index2 : number): void 静态互换数组中的位置 |
setIndex(arr : any, element : any, index : number): void 静态调整数组中元素位置 |
sort(arr : any, attributeName : string, isAsc : boolean): void 静态按照asc排序(忽略大小写) |
compare(aArr : any, bArr : any) 静态比较,列出B数组相对于A数组中不同的元素 |
getTreeNodeArray(treeNode : any, childrenAttr? : string, arrayList? : any, checkIsOpen? : boolean, isOpenAttr? : string, ignoreChildrenCondition? : Callback): any 静态获取树型结构下全部节点中的子节点列表(含自身节点) |
详情
randOrder
randOrder(arr : any): void :
静态数组内随机打乱排序
参数
arr 数组
insert
insert(arr : any, index : number, ...arg : any): number :
静态添加数据
参数
arr 数据组
index 索引 -1=加入到数组尾端
arg 添加的数据
delete
delete(arr : any, index : number): any :
静态删除数据
参数
arr 数据组
index 索引 -1=删除尾端数据
返回
any 被删除的数据对象
remove
remove(arr : any, obj : any): any :
静态移除数据,返回新的数组
参数
arr 数据组
obj 数据对象
返回
any
removeSameObjectD2
removeSameObjectD2(arr : any, attrName : string, ifNullIgnore : boolean): any :
静态剔除相同的元素,根据子元素属性是否相同,返回新的数组
参数
arr 原数组
attrName 属性名称
ifNullIgnore 是否如果属性为null时不会移除
返回
any 新数组
get
get(arr : any, index : number): any :
静态获取数据
参数
arr 数据组
index 索引 -1=尾端数据
返回
any
set
set(arr : any, index : number, paramValue : any): any :
静态更改数据中的值
参数
arr 数据组
index 索引
paramValue 参数和值Object
实际被更改的对象数组
insertToNullPosition
insertToNullPosition(arr : any, obj : any): number :
静态插入数据 找到空值或添加
参数
arr 数组
obj 要插入的对象
返回
number 插入到的索引
getNullPosition
getNullPosition(arr : any, startIndex? : number): number :
静态找到一个空的位置
参数
arr 数组
startIndex [可选] 默认值=0 索引
返回
number 找到空位置索引
removeSameObject
removeSameObject(arr : any): any :
静态剔除相同的元素
参数
arr 原数组
返回
any 新数组
matchAttributes
matchAttributes(arr : any, matchData : any, onlyOne : boolean, symbol? : string, indexOfMode? : boolean): any :
静态匹配数据,如在一组对象的数据中,筛选出对象中含有的某些属性值为多少的对象集合
使用示例:
var arr = {a:6},{a:7},{a:8},{a:6};
var m = ArrayUtils.matchAttributes(arr,{a:6},false); // 返回组中有两个结果 {a:6},{a:6}
var m = ArrayUtils.matchAttributes(arr,{a:6},false,">"); // 返回组中有两个结果 {a:7},{a:8}
var m = ArrayUtils.matchAttributes(arr,{a:6},false,"==",true); // 返回组中两个结果,相对于原数组的索引 0,3
var m = ArrayUtils.matchAttributes(arr,{a:6},true); // 返回组中有1个结果 {a:6}
参数
arr 数组
matchObj 参数
onlyOne 是否只匹配一个数据
symbol [可选] 默认值="==" 对比符号
indexOfMode [可选] 默认值=false 返回匹配的索引而非返回匹配的对象
返回
any 如果是indexOfMode则返回 number,否则返回arr同类型的数据
matchAttributesD2
matchAttributesD2(arr : any, attribute : string, matchData : any, onlyOne : boolean, symbol? : string): any :
静态匹配数据 深度2,用于匹配对象中的对象是否含有该属性
使用示例:
var arr = {a:{b:2}},{a:{b:3},{a:{b:5}},{a:{b:7}};
var m = ArrayUtils.matchAttributesD2(arr,"a",{b:2},false); // 返回 {a:{b:2}}
参数
arr 数组
attribute 属性
matchObj 参数
onlyOne 是否只匹配一个数据
symbol [可选] 默认值="==" 对比符号
返回
any
matchAttributesD3
matchAttributesD3(arr : any, attribute : string, attribute2 : string, matchData : any, onlyOne : boolean, symbol? : string): any :
静态匹配数据 深度3
参数
arr 数组
attribute 属性
attribute2 属性2
matchObj 参数
onlyOne 是否只匹配一个数据
symbol [可选] 默认值="==" 对比符号
返回
any
getChildAttributeToCreateArray
getChildAttributeToCreateArray(arr : any, attributeName : string, ignoreNullChild? : boolean): any :
静态获取对象/数组内对象的指定属性的值组成一个新的数组
参数
arr 原对象/数组
attributeName 原数组内对象的指定属性名
ignoreNullChild [可选] 默认值=true 是否忽略掉在arr中为NULL的子对象,以便不会加入到新的数组中
返回
any
getElementSize
getElementSize(arr : any, value : any): number :
静态获取数组中元素出现的个数
参数
arr 数组
value 元素
返回
number 出现的个数
createObjects
createObjects(objCls: any, size: number, onCreateOne?: (index : number, obj : any) => void, arr? : any): any :
静态批量装载创建对象
参数
objCls 对象类
size 数目
obj
arr [可选] 默认值=null 装载至的数组,设置则以该数组为装载对象
返回
any
swap
swap(arr : any, index1 : number, index2 : number): void :
静态互换数组中的位置
参数
arr 数组
index1 位置1
index2 位置2
setIndex
setIndex(arr : any, element : any, index : number): void :
静态调整数组中元素位置
参数
arr 数组
element 元素
index 位置
sort
sort(arr : any, attributeName : string, isAsc : boolean): void :
静态按照asc排序(忽略大小写)
参数
arr 数组
attributeName 属性的名称
isAsc 是否正序排序
compare
compare(aArr : any, bArr : any) :
静态比较,列出B数组相对于A数组中不同的元素
参数
aArr A数组
bArr B数组
appended 增加的元素列表
subtract 减少的元素列表
getTreeNodeArray
getTreeNodeArray(treeNode : any, childrenAttr? : string, arrayList? : any, checkIsOpen? : boolean, isOpenAttr? : string, ignoreChildrenCondition? : Callback): any :
静态获取树型结构下全部节点中的子节点列表(含自身节点)
参数
reeNode 树型结构节点
childrenAttr [可选] 默认值="children" 如 “children”
arrayList [可选] 默认值=null 装载数据的数组
checkIsOpen [可选] 默认值=false 是否需要检查开启状态,如果检查的话则未开启的数据不计入返回列表中
isOpenAttr [可选] 默认值="isOpen" 开启状态属性名
ignoreChildrenCondition [可选] 默认值=null 忽略子对象的条件 如 ignoreChildrenCondition(treeNode: any){return treeNode.ignoreChildren;}