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;

  }

原文地址:https://www.cnblogs.com/haishen/p/10251090.html