zoukankan      html  css  js  c++  java
  • javascript 数组的部分常用属性用法

    数组

    检测数组(返回布尔类型

      a、 instanceof(); 检测是否是数组对象   

    console.log(arr instanceof Array) ;

      b、 Array.isArray() ,H5新方法

    查找元素所在的索引 indexOf()  

         arr.indexOf("要查看的元素"); 从前往后

           arr.lastIndexOf(“要查找的元素”);  从后往前

                  返回索引位置,找到立即返回,一次查找一个。找不到则返回-1.

    转换数组

      a、 arr.toString();  把数组变换成字符串 /需要一个新的变量接受返回值,不改变原数组,数组中的逗号也会被转换成新元素的值

      b、 valueof(): 返回数组本身     数组本身 = 数组.valueOf();

    join  连接数组

      a) arr = arr.join() ;

      b)把数组元素用 “连接符”  (用“”标示出来的符号)连接成字符串

      c)需要新变量来接收,不修改原数组

      d)参数决定用什么连接

      e)无参数默认用逗号连接

      f)用空字符串“”可以无缝连接每个元素,用“ ”中间添加空格,即可使用空格隔开 

        

        var arr = ["虹猫","蓝兔","赵四"];
        var str1 = arr.join();
        var str2 = arr.join(" ");//如果用空格的话,那么元素之间会有一个空格
        var str3 = arr.join("");//用空字符串,链接元素,无缝连接
        var str4 = arr.join("&");

    argument、伪数组

      a、只在函数中使用,实参的数组

      b、伪数组,不能修改数组长度

      c、允许修改值,长短不可修改

        fn(1,2,3,4);
        function fn(a,b){
            arguments[0]= "我已经把1替换为了我";
            console.log(arguments);     //输出此数组
            console.log(fn.length);   // 形参的个数
            console.log(arguments.length); // 输出此数组的实参个数
    //        arguments.push("此处将输出错误,");
            console.log(arguments instanceof Array); // 将输出false
    //        console.log(arguments.callee); //  打印出整个函数 包括注释
        }

    栈操作  --   先进后出

        arr = arr.push;  在最后面插入返回数组的长度可以插入数组

        arr = arr.pop;   去除最后一项/返回减去的这个元素

    队列操作 --  先进先出

        arr = arr.shift ;    删除第一个数组的元素,返回被删除的元素;

        arr = arr.unshift ;   在第一个数组元素前添加一个元素,返回新数组的长度

     反转、排序 方法

        arr = arr.reverse() ;  反转数组,返回新数组,但是原数组也会被修改 [rɪ'vɜːs]

          arr = arr.soft() ;  将数组排序,默认为按照首字母的unicode编码值排列,返回的新数组元素会从小到大排。

               回调函数可以实现按你设置的规则排列     

        var arr = [1,21,15,2,3,4,5];
    console.log(arr.sort(function(a,b){
        return a-b; //设置规则 正序,      底层是arr[a] - arr[a+1]   > 0 ; 然后将其互换
        return b-a;  //  倒序    
    }));
      console.log( "b".charCodeAt()); //获取元素的unicode编码

        arr = arr.concat(arr2);    concat 合并数组

            var arr1 = ["a","b","c"];
            var arr2 = [111,22,3];
    
            var arr3 = arr1.concat(arr2);        

        arr = arr.slice(开始的位置 ,结束的位置)    截取数组元素,给予负值是从尾部开始截取      

                      需注意,结束的位置,指的是第几个元素,而不是取几个位置;

        ar =  arr.splice(开始截取的位置,截取的数量,弥补的值);    弥补的值可以是元素,也可是数组

                              若放数组,则会把数组整体放入  形成二维数组 || 截取的值是从第几个元素后边开始

                              不写弥补的值,则原数组会被删减/可使截取的数量为0,弥补的值即可自我调配

    var arr=[0,1,2,3,4,5,6,7,8,9];
    
    var ar = arr.splice(3,3,"a","b","c");
        alert(ar);         //  [3,4,5]
        alert(arr);     //  [0,1,2,3,a,b,c,7,8,9]


    //        删除数组中大于2000的数
    var arr = [1500,1200,2000,2100,1800,2222,3333,1111,221];
    fn(arr);
    function fn(){
    for(i=0;i<arr.length;i++){
    if(arr[i]>=2000){
    arr.splice(i,1);
    alert(arr);
    i =i-1;
    }
    }
    }
     

    数组遍历的方法 ,对数组元素进行某项操作

      a) arr.every( function ( item,index, arr){ } ) ;

        1.返回一个boolean值,参数是回调函数

        2.对每个数组元素都进行如下函数

        3.若有一项返回false则every返回false并在返回false后停止运行

     1     var arr=[0,1,2,3,4,"我是第6个元素5",6,7,8,9];
     2 
     3     var bool = arr.every(function(item,index,array){
     4 //        item = "abc";   // 每个元素都在取出后被替换为abc
     5 //          array[index] ="abc"; //数组的元素直接被替换为abc
     6 //
     7 //        console.log(item);
     8 //        console.log(index);
     9 //        console.log(array);
    10         if(item.length>2){
    11             return false;
    12         }
    13         return true;
    14     });
    15     alert( bool);
    操控数组元素

      b) arr.some(function(element,index,array){ } ) ;

        1.有一项返回true 则返回true;

        2.返回true函数停止运行。

      c) arr.filter(function(element,index,array){ } ) ;

        返回一个新数组 ;

      d) arr.forEach(function(element,index,array){ } ) ;

        遍历数组(无返回值,为数组中的元素都执行某个函数);无法停止!!

    1 var arr=[0,1,2,3, ,"我是第6个元素5",6,7,8,9];
    2 
    3 function logArrayElements(element, index, array) {
    4     console.log("a[" + index + "] = " + element);
    5 }
    6 
    7 arr.forEach(logArrayElements);

        

      e) arr.map(function(element,index,array){   } ) ; 对元素进行函数运算,每个返回的值组成一个新的数组。

     清空数组

      一、  arr.splice(0);

       二、  arr.length = 0;  // 伪数组不适用

       三、  arr = [ ] ;  // 重新赋值 

    测试数组中的重复元素次数 

    //测试数组中的重复元素次数
    var arr = ["亚洲","气质舞王","尼古拉斯","赵四","亚洲",22,22,22,22,22];
    fn(arr);
    
    function fn(arr){
     var len=[];   // 用来计数
     var ar = new Array(); // 用来收藏arr都有哪几种元素
    //                    外循环控制轮数
          for (i=0;i<arr.length;i++){
    //                    若新数组ar里没有arr的元素
            if(arr[i] !== ar[ar.length]) {
    //                    就把此元素储存到ar中
              ar[ar.length] = arr[i];
                len[i] = 0; // 初始化数组元素,否则将显示NAN
    //                    将每个arr数组元素都与组装的数组ar比较
                 for(y=0; y<arr.length;y++){
                     if (arr[y] == ar[i]){
    //                    相等则计数器加1
                         len[i] += 1 ;
                     }
                 }
              console.log("元素arr["+ar[i]+"]出现的次数是"+len[i])
            }
          }
    }

     

    作者:明明
    出处: http://www.cnblogs.com/mingm/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。

  • 相关阅读:
    codeforces242E XOR on Segment
    HDU3037 Saving Beans
    BZOJ1951 [Sdoi2010]古代猪文
    BZOJ3563 DZY Loves Chinese
    HDU1573 X问题
    POJ2891 Strange Way to Express Integers
    BZOJ2152 聪聪可可
    codeforces291E Tree-String Problem
    codeforces741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths
    codeforces246E Blood Cousins Return
  • 原文地址:https://www.cnblogs.com/mingm/p/6602887.html
Copyright © 2011-2022 走看看