• js 数组操作


     

    toString():把数组转换成一个字符串

    toLocaleString():把数组转换成一个字符串

    join():把数组转换成一个用符号连接的字符串

    shift():将数组头部的一个元素移出

    unshift():在数组的头部插入一个元素

    pop():从数组尾部删除一个元素

    push():把一个元素添加到数组的尾部

    concat():给数组添加元素

    slice():返回数组的部分

    reverse():将数组反向排序

    sort():对数组进行排序操作

    splice():插入、删除或者替换一个数组元素

    1.shift

    删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined 

    1. var a = [1,2,3,4,5];   
    2. var b = a.shift(); //a:[2,3,4,5] b:1  

    2.unshift

    将参数添加到原数组开头,并返回数组的长度 

    1. var a = [1,2,3,4,5];   
    2. var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7 

    3.pop

    删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined 

    1. var a = [1,2,3,4,5];   
    2. var b = a.pop(); //a:[1,2,3,4] b:5  

    4.push

    将参数添加到原数组末尾,并返回数组的长度 

    1. var a = [1,2,3,4,5];   
    2. var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7  

    5.concat

    返回一个新数组,是将参数添加到原数组中构成的 

    1. var a = [1,2,3,4,5];   
    2. var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7] 

    6.splice(start,deleteCount,val1,val2,...)

    从start位置开始删除deleteCount项,并从该位置起插入val1,val2,... 

    1. var a = [1,2,3,4,5];   
    2. var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4]   
    3. var b = a.splice(0,1); //同shift   
    4. a.splice(0,0,-2,-1); var b = a.length; //同unshift   
    5. var b = a.splice(a.length-1,1); //同pop   
    6. a.splice(a.length,0,6,7); var b = a.length; //同push 

    7.reverse将数组反序 

    1. var a = [1,2,3,4,5];   
    2. var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]  

    8.sort(orderfunction)

    按指定的参数对数组进行排序 

    1. var a = [1,2,3,4,5];   
    2. var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5]  

    9.slice(start,end)

    返回从原数组中指定开始下标到结束下标之间的项组成的新数组 

    1. var a = [1,2,3,4,5];   
    2. var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]  

    10.join(separator)

    将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符

    1. var a = [1,2,3,4,5];   
    2. var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5" 

    11.数组是JavaScript提供的一个内部对象,它是一个标准的集合,我们可以添加(push)、删除(shift)里面元素,我们还可以通过for循环遍历里面的元素,那么除了数组我们在JavaScript里还可以有别的集合吗? 

      由于JavaScript的语言特性,我们可以向通用对象动态添加和删除属性。所以Object也可以看成是JS的一种特殊的集合。下面比较一下Array和Object的特性: 

    1. //Array:  
    2. /*新建:*/var ary = new Array(); 或 var ary = [];   
    3. /*增加:*/ary.push(value);   
    4. /*删除:*/delete ary[n];   
    5. /*遍历:*/for ( var i=0 ; i < ary.length ; ++i ) ary[i];  
    6. //Object:  
    7. /*新建:*/var obj = new Object(); 或 var obj = {};   
    8. /*增加:*/obj[key] = value; (key为string)   
    9. /*删除:*/delete obj[key];   
    10. /*遍历:*/for ( var key in obj ) obj[key]; 

    12.从上面的比较可以看出Object完全可以作为一个集合来使用,在使用Popup窗口创建无限级Web页菜单(3)中我介绍过Eric实现的那个__MenuCache__,它也就是一个模拟的集合对象。 

      如果我们要在Array中检索出一个指定的值,我们需要遍历整个数组: 

    1. var keyword = ;   
    2.   for ( var i=0 ; i < ary.length ; ++i )   
    3.   {   
    4.   if ( ary[i] == keyword )   
    5.    {   
    6.        // todo   
    7.     }   
    8.   }  

    而我们在Object中检索一个指定的key的条目,只需要是要使用: 

    1. var key = '';   
    2. var value = obj[key];   
    3. // todo  

    13.数组字符串化

    arrayObj.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。
    toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用

    14.数组的拷贝

    arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向
    arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向

    14.prototype 属性

    返回对象类型原型的引用。prototype 属性是 object 共有的。

    objectName.prototype

    objectName 参数是object对象的名称。

    说明:用 prototype 属性提供对象的类的一组基本功能。 对象的新实例“继承”赋予该对象原型的操作。

    对于数组对象,以以下例子说明prototype 属性的用途。

    给数组对象添加返回数组中最大元素值的方法。要完成这一点,声明一个函数,将它加入 Array.prototype, 并使用它。

    function array_max()
    {
      var i,
      max = this[0];
      for (i = 1; i < this.length; i++)
      {
          if (max < this[i])
          max = this[i];
      }
      return max;
    }
    Array.prototype.max = array_max;
    var x = new Array(1, 2, 3, 4, 5, 6);
    var y = x.max();

    该代码执行后,y 保存数组 x 中的最大值,或说 6。

    15、constructor 属性

    表示创建对象的函数。

    object.constructor //object是对象或函数的名称。

    说明:constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor 属性保存了对构造特定对象实例的函数的引用。

    x = new String("Hi");
    if (x.constructor == String) // 进行处理(条件为真)。

    或者:

    function MyFunc {
      // 函数体。
    }
    y = new MyFunc;
    if (y.constructor == MyFunc) // 进行处理(条件为真)。

  • 相关阅读:
    activity6.0部署BPMN文件的多种方式,直接上代码
    分享一个本地缓存解决方案 Caffeine Cache
    springBoot+Docker+K8s如何远程调试
    记录一次POI导出word文件的细节问题
    Java程序性能优化部分细节
    数据库性能优化-2
    数据库性能优化-1
    一种基于“哨兵”的分布式缓存设计
    转:Spring中的@Transactional(rollbackFor = Exception.class)属性详解
    使用dozer实现对象转换
  • 原文地址:https://www.cnblogs.com/winyh/p/6668027.html
Copyright © 2020-2023  润新知