上线内容
1.微订房6.1.3.6 【景奇伟】
2.CRM3.5.1 【陈嘉伟】
测试内容
1.微订房6.1.3.7【景奇伟】
2.HRMS1.1.6(产品和开发自测) 【唐兵贤】
3.CMS接SSO (待测)【陈嘉伟】
开发内容
1.微订房6.1.3.8【景奇伟】
2.微订房H5嵌套小程序 【陈嘉伟】
待排期的项目
1.OMS有效管理【唐兵贤】
2.CRM客户资料ui改造【陈嘉伟】
3.HRMS、SSO埋点 【唐兵贤】【陈嘉伟】
技术分享
var arry = [1,2,3,4,5,6,7,8,9,10]var endArry = [];function arryList(arry) {if(arry.length > 0) {for(let i=0; i<arry.length; i++) {if(arry[i] == 5) {var newArry = arry.slice(i + 1);arryList(newArry);//break;}else {endArry.push(arry[i])}}return endArry}}//console.log(1,2,3,4,6,7,8,9,10,6,7,8,9,10);//console.log(1,2,3,4,6,7,8,9,10);function arryList(arry) {if(arry.length > 0) {for(let i=0; i<arry.length; i++) {if(arry[i] == 5) {var newArry = arry.splice(i + 1);arryList(newArry);}else {endArry.push(arry[i])}}return endArry}}//console.log(1,2,3,4,6,7,8,9,10);
对于 slice 来说,splice 的功能会更强大点,其区别主要在于:
- slice 不改变原数组,而 splice 则会改变
- slice 的第二个参数为截至的索引值,而 splice 则表示要截取的个数
- splice 还能用于增加元素,slice 则不可以
手写slice方法
Array.prototype.mySlice = function() {var arr = [], i = 0, o = 0, len = this.length,one = parseInt(arguments[0]),two = parseInt(arguments[1]);var re = /^[+]{0,1}(\d+)$/;if(arguments.length){if(!(re.test(arguments[0]) || re.test(arguments[1]))){throw new Error("Parameter input error");}if(one > len || two == 0) return []; // 只有一个参数并且大于数组长度时返回空数组if(one >= 0) {// 第一个参数是正数的时候i = one;} else {// 第一个参数是负数的时候i = len + one;}if(two){ // 如果有第二个参数if(two > len){// 如果第二个参数大于数组长度时,len 等于数组的长度len = len;} else if(two >= 0){// 第二个参数为正数的时候len = two;} else {// 第二个参数为负数的时候len = len + two;}};};for(i; i < len; i++){arr[o] = this[i];o++;}return arr;}
手写splice方法
Array.prototype.mySplice= function(){// 更新原数组function changeThis(_this, _content){var len = content.length > _this.length ? content.length : _this.length;for(var i=0; i<len; i++){_this[i] = _content[i];}for(var i=0; i<len; i++){if(!_this[i]){_this.pop(i);}}return _this;}var resultArr=[], content=[], o = 0, L=0, arr=this, len = this.length,one = parseInt(arguments[0]),two = parseInt(arguments[1]),q=one+two;var re = /^[+]{0,1}(\d+)$/;if(!(re.test(arguments[0]) && re.test(arguments[1]))){throw new Error("Parameter input error");}//删除if(arguments.length == 2){// 获取删掉的数据resultArr = arr.slice(one, q);// 更新原数组的数据content=arr.slice(0,one).concat(arr.slice(q,arr.length));// 获取删除后剩下的数组数据changeThis(arr, content);return resultArr;// 删掉的数据}else if(arguments.length > 2){for(var i=2;i<len-1;i++){content.push(arguments[i]);}//插入if(two==0){// 更新原数组的数据content=arr.slice(0,one).concat(content,arr.slice(one,arr.length));changeThis(arr, content);return [];// 返回空数组//替换}else if(two>0){// 获取删掉的数据resultArr = arr.slice(one, q);// 更新原数组的数据content=arr.slice(0,one).concat(content,arr.slice(q,arr.length));changeThis(arr, content);return resultArr;// 替换掉的数据}}}
案例分享
