上线内容
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;// 替换掉的数据
}
}
}
案例分享