常用的数组操作工具方法封装
程序员文章站
2024-03-22 17:24:04
...
1、判断一个元素是否在数组内
contains = (arr,val) => {
return arr.indexOf(val) != -1 ? true : false
},
用法如下:
2、数组排序
/**
*数组排序
* @param {type} 1:从小到大 2:从大到小 3:随机
* @return {Array}
*/
sort = (arr, type) => {
return arr.sort( (a, b) => {
switch(type) {
case 1:
return a - b
case 2:
return b - a
case 3:
return Math.random() - 0.5
default:
return arr
}
})
},
3、数组去重
/*去重*/
unique = (arr) => {
if(Array.hasOwnProperty('from')) {
return Array.from(new Set(arr))
} else {
var n = {}, r = []
for(var i = 0; i < arr.length; i++) {
if(!n[arr[i]]) {
n[arr[i]] = true
r.push(arr[i])
}
}
return r
}
},
4、求两个集合的并集
union = (a, b) => {
var newArray = a.concat(b)
return unique(newArray)
},
5、求两个集合的交集
intersect = (a, b) => {
a = unique(a)
return map(a, function(o) {
return contains(b, o) ? o : null
})
},
6 、删除数组其中一个元素
remove = (arr, ele) => {
var index = arr.indexOf(ele)
if(index > -1) {
arr.splice(index, 1)
}
return arr
},
7、将类数组转换为数组的方法
formArray = (ary) => {
var arr = []
if(Array.isArray(ary)) {
arr = ary
} else {
arr = Array.prototype.slice.call(cry)
}
return arr
},
8、求数组最大值
max = (arr) => {
return Math.max.apply(null, arr)
},
9 、求数组最小值
min = (arr) => {
return Math.min.apply(null, arr)
},
10、数组求和
sum = (arr) => {
return arr.reduce( (pre, cur) => {
return pre + cur
})
},
11、求数组的平均值
average = (arr) => {
return sum(arr)/arr.length
},
12、数组的深克隆
deepCopy = (arr ,aimArr) => {
var aimArr = aimArr || {};
for(var i in arr){
if(typeof arr[i] === 'object'){
//要考虑深复制问题了
if(arr[i].constructor === Array){
//这是数组
aimArr[i] =[];
}else{
//这是对象
aimArr[i] = {};
}
deepCopy(arr[i],aimArr[i]);
}else{
aimArr[i] = arr[i];
}
}
return aimArr
},
13、递归删除enterprises为空的属性
recursionDelete = (list) => { //递归删除enterprises为空的属性
list.forEach(function(item, index) {
if(item.enterprises.length === 0) {
delete item.enterprises
} else {
recursionDelete(item.enterprises)
}
})
return list
}
上一篇: 使用ADB命令进行UI自动化