上线内容

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埋点 【唐兵贤】【陈嘉伟】

技术分享

  1. var arry = [1,2,3,4,5,6,7,8,9,10]
  2. var endArry = [];
  3. function arryList(arry) {
  4. if(arry.length > 0) {
  5. for(let i=0; i<arry.length; i++) {
  6. if(arry[i] == 5) {
  7. var newArry = arry.slice(i + 1);
  8. arryList(newArry);
  9. //break;
  10. }
  11. else {
  12. endArry.push(arry[i])
  13. }
  14. }
  15. return endArry
  16. }
  17. }
  18. //console.log(1,2,3,4,6,7,8,9,10,6,7,8,9,10);
  19. //console.log(1,2,3,4,6,7,8,9,10);
  20. function arryList(arry) {
  21. if(arry.length > 0) {
  22. for(let i=0; i<arry.length; i++) {
  23. if(arry[i] == 5) {
  24. var newArry = arry.splice(i + 1);
  25. arryList(newArry);
  26. }
  27. else {
  28. endArry.push(arry[i])
  29. }
  30. }
  31. return endArry
  32. }
  33. }
  34. //console.log(1,2,3,4,6,7,8,9,10);

对于 slice 来说,splice 的功能会更强大点,其区别主要在于:

  • slice 不改变原数组,而 splice 则会改变
  • slice 的第二个参数为截至的索引值,而 splice 则表示要截取的个数
  • splice 还能用于增加元素,slice 则不可以

    手写slice方法

    1. Array.prototype.mySlice = function() {
    2. var arr = [], i = 0, o = 0, len = this.length,
    3. one = parseInt(arguments[0]),
    4. two = parseInt(arguments[1]);
    5. var re = /^[+]{0,1}(\d+)$/;
    6. if(arguments.length){
    7. if(!(re.test(arguments[0]) || re.test(arguments[1]))){
    8. throw new Error("Parameter input error");
    9. }
    10. if(one > len || two == 0) return []; // 只有一个参数并且大于数组长度时返回空数组
    11. if(one >= 0) {// 第一个参数是正数的时候
    12. i = one;
    13. } else {// 第一个参数是负数的时候
    14. i = len + one;
    15. }
    16. if(two){ // 如果有第二个参数
    17. if(two > len){// 如果第二个参数大于数组长度时,len 等于数组的长度
    18. len = len;
    19. } else if(two >= 0){// 第二个参数为正数的时候
    20. len = two;
    21. } else {// 第二个参数为负数的时候
    22. len = len + two;
    23. }
    24. };
    25. };
    26. for(i; i < len; i++){
    27. arr[o] = this[i];
    28. o++;
    29. }
    30. return arr;
    31. }

    手写splice方法

    1. Array.prototype.mySplice= function(){
    2. // 更新原数组
    3. function changeThis(_this, _content){
    4. var len = content.length > _this.length ? content.length : _this.length;
    5. for(var i=0; i<len; i++){
    6. _this[i] = _content[i];
    7. }
    8. for(var i=0; i<len; i++){
    9. if(!_this[i]){
    10. _this.pop(i);
    11. }
    12. }
    13. return _this;
    14. }
    15. var resultArr=[], content=[], o = 0, L=0, arr=this, len = this.length,
    16. one = parseInt(arguments[0]),
    17. two = parseInt(arguments[1]),
    18. q=one+two;
    19. var re = /^[+]{0,1}(\d+)$/;
    20. if(!(re.test(arguments[0]) && re.test(arguments[1]))){
    21. throw new Error("Parameter input error");
    22. }
    23. //删除
    24. if(arguments.length == 2){
    25. // 获取删掉的数据
    26. resultArr = arr.slice(one, q);
    27. // 更新原数组的数据
    28. content=arr.slice(0,one).concat(arr.slice(q,arr.length));// 获取删除后剩下的数组数据
    29. changeThis(arr, content);
    30. return resultArr;// 删掉的数据
    31. }else if(arguments.length > 2){
    32. for(var i=2;i<len-1;i++){
    33. content.push(arguments[i]);
    34. }
    35. //插入
    36. if(two==0){
    37. // 更新原数组的数据
    38. content=arr.slice(0,one).concat(content,arr.slice(one,arr.length));
    39. changeThis(arr, content);
    40. return [];// 返回空数组
    41. //替换
    42. }else if(two>0){
    43. // 获取删掉的数据
    44. resultArr = arr.slice(one, q);
    45. // 更新原数组的数据
    46. content=arr.slice(0,one).concat(content,arr.slice(q,arr.length));
    47. changeThis(arr, content);
    48. return resultArr;// 替换掉的数据
    49. }
    50. }
    51. }

    案例分享