javasript自己封装的数组方法
来源:互联网 发布:手机怎么连接网络电视 编辑:程序博客网 时间:2024/05/20 17:59
//向数组里面添加each方法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; }, //补集arr1是全集,arr2是子集,arr1包含arr2 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));
阅读全文
0 0
- javasript自己封装的数组方法
- 在HTML中嵌入Javasript的方法
- 在HTML中嵌入Javasript的方法
- Bootstrap Popover 隐藏的Javasript方法
- Bootstrap Popover 隐藏的Javasript方法
- 封装数组的indexOf方法
- 自己封装一个获取组件的方法
- 自己封装Robot Framework的关键字方法
- 第一次自己封装的分页方法
- 自己常用方法封装
- js自己封装方法
- javasript利用jquery发送请求的各种方法
- javasript 把字符串转换为对象的2种方法
- 自己封装的一个ASP.NET上传文件的方法
- 将自己的类封装为lib的方法
- 自己重新实现QTP封装的一些常用的方法
- swiftswift3.0自己封装的快速构建页面的方法
- 将自己的类封装成lib的方法
- HTML5的 input:file上传类型控制
- 时间戳转成日期,解决总是日期总是1970年的问题
- 【剑指offer】题12:打印1到最大的n位数
- Wildfly 配置web项目 并开启https双向认证
- Web Service工作原理及实例
- javasript自己封装的数组方法
- centos 7对外开启80端口
- d3.js 实现svg 缩放 平移 旋转
- pexpect库学习之ssh专用类详解
- Ubuntu下Eclipse的安装方法(图文详解)
- 使用 UMEditor-jsp 图片上传失败解决方法
- android监听SD卡状态
- 电商产品评论数据情感分析代码详解
- [Week 3] [Leetcode] [Array] Remove Duplicates from Sorted Array