• Array类型的操作方法


    1、检测数组

      (1)instanceof操作符 ,它假定只有一个全局执行环境,如:

    1 if(value instanceof Array){
    2     //对数组进行操作
    3 }

      (2)ECMAScript 5 新增了Array.isArray() 方法,目的是最终确定某个值到底是不是数组。如

    1 if(Array.isArray(value)){
    2     //对数组进行操作
    3 }

    2、转换方法:

      (1)toLocaleString():经常与toString()、valueOf 的返回值相同。

      (2)toString():以逗号分隔的字符串。

      (3)valueOf() :返回的是数组。

    3、指定符号做分隔符  join():

    1 var color = ["red","green","blue"];
    2 alert(colors.join(',')); //red,green,blue
    3 alert(colors.join('||')); //red||green||blue

    4、栈方法(pop() 和 push() 结合)

      (1)push():在数组末尾添加数据,返回数组长度。

      (2)pop():取出数组末尾数据并删除该数据。

    1 var colors = ["red","green"];
    2 colors.push("brown");
    3 colors[3]="black";
    4 alert(colors.length); //4
    5 
    6 var item = colors.pop();
    7 alert(item); //"black"

    5、队列方法(shift() 和 push() 结合)

      (1)shift():移除数组中的第一个项并返回该项,同时将数组长度减1。

      (2)unshift():在数组前端添加任意个项并返回新数组的长度。

     1 var colors = new Array();
     2 var count = colors.push("red","green");
     3 alert(count); //2
     4 
     5 var item = colors.shift();
     6 alert(item); //red
     7 alert(colors.length); //1
     8 
     9 var count = colors.unshift("black");
    10 alert(count); //3

    6、重排序方法

      (1)reverse():反转数组项的顺序。

      (2)sort():调用每个数组项的toString()转型方法进行排序,也可以将比较函数作为参数传递给sort()方法。

     1 var values = [1,2,3,4];
     2 values.reverse();
     3 alert(values); //4,3,2,1
     4 
     5 var values = [0,1,5,10,15];
     6 values.sort();
     7 alert(values); //0,1,10,15,5 ;根据toString()方法来比较
     8 
     9 function compare(value1,value2){
    10     return value2-value1;
    11 }    
    12 values.sort(compare);
    13 alert(values); //0,1,5,10,15

    7、操作方法

      (1)concat() :参数为一个或多个数组,则该方法会将这些数组中的每一项都添加到结果数组中。

    1 var colors = ["red","green"];
    2 var colors2 = colors.concat("yellow",["black","brown"]);
    3 
    4 alert(colors); //red,green
    5 alert(colors2); //red,green,yellow,black,brown

      (2)slice():参数可以是一个或两个,即要返回项的起始位置和结束位置。

    1 var colors = ["red","yellow","blue","purple"];
    2 var color2 = colors.slice(1); //默认结束位置为数组最后一项
    3 var color3 = colors.slice(1,3);
    4 
    5 alert(color2); //yellow,blue,purple
    6 alert(color3); //yellow,blue

      (3)splice():强大的数组方法,可以进行删除、添加、替换操作。

    /*
        删除:指定两个参数,即要删除第一项的位置和要删除的项数
    */
    var colors=["red","green","blue"];
    var removed=colors.splice(0,1);
    alert(colors); //green,blue
    alert(removed); //red
    
    /*
        插入:3个参数,即起始位置,0(要删除的项数)和要插入的项
    */
    removed = colors.splice(1,0,"yellow","orange");
    alert(colors); //green,blue,yellow,orange
    alert(removed); //返回的是一个空数组
    
    /*
        替换:3个参数,即起始位置,要删除的项数和要插入的项
    */
    removed = colors.splice(1,1,"red","purple");
    alert(colors); //green,red,purple,orange,blue
    alert(removed); //yellow

    7、位置方法

      (1)indexOf():两个参数,即要查找的项和(可选的)表示查找起点位置的索引。

      (2)lastIndexOf():两个参数,即要查找的项和(可选的)表示查找起点位置的索引,从数组末尾开始向前查找。

    1 var numbers = [1,2,3,4,5,4,3,2,1];
    2 alert(numbers.indexOf(4)); //3
    3 alert(numbers.lastIndexOf(4)); //5
    4 
    5 alert(numbers.indexOf(4,4)); //5
    6 alert(numbers.lastIndexOf(4,4)); //3

    8、迭代方法

      every() , filter() , forEach() , map() , some():两个参数,即要在每一项上运行的函数和(可选的)运行该函数的作用域对象——影响this的值。

     1 var numbers = [1,2,3,4,5,4,3,2,1];
     2 
     3 var everyResult = numbers.every(function(item,index,array){
     4     return (item>2);
     5 });
     6 alert(everyResult); //false
     7 
     8 var someResult = numbers.some(function(item,index,array){
     9     return (item>2);
    10 });
    11 alert(everyResult); //false

     

     1 var filterResult = numbers.filter(function(item , index , array){
     2     return (item>2);
     3 });
     4 alert(filterResult); //[3,4,5,4,3]
     5 
     6 var mapResult = numbers.map(function(item , index , array){
     7     return item*2;
     8 });
     9 alert(mapResult); //[2,4,6,8,10,8,6,4,2]
    10 
    11 numbers.forEach(function(item , index , array){
    12     //执行某些操作
    13 });

     8、归并方法

      (1)reduce():从数组的第一项开始,逐个遍历到最后。

      (2)reduceRight():从数组的最后一项开始,逐个遍历到第一项。

      这两个方法都接收4个参数:前一个值,当前值,项的索引值,数组对象。

     1 //求和
     2 var values = [1,2,3,4,5];
     3 var sum = values.reduce(function(prev,cur,index,array){
     4     return prev+cur;
     5 });
     6 alert(sum); //15
     7 
     8 var values = [1,2,3,4,5];
     9 var sum = values.reduceRight(function(prev,cur,index,array){
    10     return prev+cur;
    11 });
    12 alert(sum); //15

    参考:JavaScript高级程序设计

  • 相关阅读:
    【Java】久违了,Hello World!
    【Java】番外——BUG一词的由来
    【Java】数据类型、关键字、标识符
    【Java】一年后,重新开始学习Java!
    【Java】Path环境变量、Java_HOME
    【Java】Java环境安装
    反射
    修改metronome
    python 简单的动漫排名爬虫
    python 打包的 exe 程序自动更新
  • 原文地址:https://www.cnblogs.com/daheiylx/p/9358871.html
Copyright © 2020-2023  润新知