
Array.prototype.each = function(fun){
for(var i = 0, len = this.length;i < len; i++){
fun(i, this[i]);
}
}
var zycArray = {
sum:function(arr){
var sum = 0;
for(var i = 0, len = arr.length; i < len; i++){
if(typeof(arr[i]) !== "number"){
console.error("数组有非数字类型元素");
break;
}else{
sum = sum + arr[i];
}
}
return sum;
},
avg:function(arr, num){
var sum = zycArray.sum(arr);
var avg = (sum/arr.length).toFixed(num);
return avg;
},
max:function(arr){
var max = arr[0];
arr.each(function(k, v){
if(typeof(v) !== "number"){
console.error("数组中包含非数字类型元素");
return false;
}else{
if(max < v){
max = v;
}
}
});
return max;
},
min:function(arr){
var min = arr[0];
arr.each(function(k, v){
if(typeof(v) !== "number"){
console.error("数组中包含非数字类型元素");
return false;
}else{
if(min < v){
min = v;
}
}
});
return min;
},
filterTxt:function(arr){
var chReg = /^[\u4E00-\u9FA5]+$/;
var result = [];
arr.each(function(k, v){
if(chReg.test(arr[k])){
result[result.length++] = arr[k];
}
});
return result;
},
fliterNum:function(arr){
var result = [];
arr.each(function(k, v){
if(typeof(arr[k]) == "number"){
result[result.length++] = arr[k];
}
});
return result;
},
filterEnstr:function(){
var chReg = /^[A-Za-z]+$/;
var result = [];
arr.each(function(k,v){
if(chReg.test(arr[k])){
result[result.length++] = arr[k];
}
});
return result;
},
inter:function(arr1, arr2){
var result = [];
arr1.each(function(k, v){
arr2.each(function(index, value){
if(v == value){
result[result.length++] = v;
}
});
});
return result;
},
union:function(arr1, arr2){
var result = arr1;
arr2.each(function(k, v){
result[result.length++] = v;
});
return result;
},
complement:function(arr1, arr2){
var result = [];
for(var i = 0, len = arr1.length; i < len; i++){
var flag = true;
for(var j = 0, lenj = arr2.length; j < lenj; j++){
if(arr1[i] === arr2[j]){
flag = false;
break;
}
}
if(flag){
result[result.length++] = arr1[i];
flag = true;
}
}
return result;
},
switchPosition:function(arr, index1, index2){
var result = arr;
var temp = result[index1];
result[index1] = result[index2];
result[index2] = temp;
return result;
}
}
var arr = [1,2,3,3,5664546,"哈哈","hahs哈哈","我","ssd","hah2112","vv"];
console.log("最大值"+zycArray.max(arr));
console.log("求和"+zycArray.sum(arr));
console.log("平均值"+zycArray.avg(arr,4));
console.log("提取中文"+zycArray.filterTxt(arr));
console.log(zycArray.fliterNum(arr));
console.log(zycArray.filterEnstr(arr));
console.log(zycArray.inter([1,2,3,"ss",false],["哈","ss",2]));
console.log(zycArray.union([1,2,3,"ss",false],["哈","sss",22]));
console.log(zycArray.complement([1,2,3,"ss",false],[2,3,"ss"]));
console.log(zycArray.switchPosition(arr,1,2));