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;

      }

  • 相关阅读:
    二叉树知识拓展
    【2014年鄞州区】小幸福(e.pas/c/cpp)
    【2017年常州市】小X与队列 (queue)
    【2018年南海区甲组】扑克游戏(poker)
    【2018年南海区甲组】拆除桥墩(remove)
    【NOIP普及组模拟赛3】投影(skyline)
    常用正则表达式
    asp.net访问母版页控件方法
    C#文件读写操作
    C#读取csv格式文件
  • 原文地址:https://www.cnblogs.com/haishen/p/10251090.html
Copyright © 2011-2022 走看看