• Array数组


    1、判断一个对象是否为 array

      let obj = {};

      let arr = [];

      Array.isArray(obj);  //false

      Array.isArray(arr);  //true

    2、将一下字符串转换成数组

      let str = '["huangny233333","android_wxpaytest_56","android_wxpaytest_56","android_wxpaytest_55","android_wxpaytest_38"]'

      let arr = eval(str);  //变成相应数组

    eval( ) 函数可以计算某个字符串,并执行其中的js代码

    3、数组的浅拷贝和深拷贝。

      var Chinese = { nation : '中国'  };

      var Doctor = { career : '医生' };

      function extendCopy( p ){

        var c = {};

        for(var i in p){

          c[i] = p[i];

          c.uber = p;

        }

        return c;

      }

    使用如下:

      var doctor = extendCopy(Chinese);

      doctor.career = '医生';

      alert( doctor.native );  //中国

    这种方式,实际上,子对象获得的只是一个内存地址,而不是真正的拷贝,因此父对象存在被篡改的可能。

    深拷贝:

      所谓深拷贝,就是真正意义上实现数组和对象的拷贝,它的实现并不难,只要递归调用浅拷贝就行了。

      function deepCopy(p, c){

        var c = c || {};

        for( var i in p){

          if( typeof p[i] === 'object'){

            c[i] = (p[i].constructor === Array)  ?  [] : {} ;

            deepCopy( p[i], c[i] );  

          }else{

            c[i] = p[i];

          }

        }

        return c;

      }

  • 相关阅读:
    HUST 1584 摆放餐桌
    HUST 1585 排队
    HUST 1583 长度单位
    树状数组 poj2352 Stars
    Visual Studio2013应用笔记---WinForm事件中的Object sender和EventArgs e参数
    倒置输入的数 Exercise07_02
    指定等级 Exercise07_01
    检测密码 Exercise06_18
    一年的天数 Exercise06_16
    数列求和 Exercise06_13
  • 原文地址:https://www.cnblogs.com/haishen/p/10251090.html
Copyright © 2020-2023  润新知