zoukankan      html  css  js  c++  java
  • 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;

      }

  • 相关阅读:
    如何使用xshell在阿里云服务器上安装tomcat
    如何使用Xshell连接阿里云服务器
    jQuery封装ajax的使用方法
    ES6新增语法
    数组坍塌原理
    JavaScript冒泡排序、选择排序、数组去重
    JS循环嵌套的执行原理
    分栏布局
    如何实现两列固定与一列自适应
    CSS过渡、动画及变形的基本属性与运用
  • 原文地址:https://www.cnblogs.com/haishen/p/10251090.html
Copyright © 2011-2022 走看看