zoukankan      html  css  js  c++  java
  • 引用类型(object、array)

    1.Object类型

      1)创建方法:

    //使用new加object构造函数
    var person = new Object();
    person.name = "aaa";
    person.age = 29;
    
    //对象字面量表示法
    var person = {
        name:"aaa",//注意符号 逗号
        age:29
    };//注意符号 分号

    使用对象字面量语法时,属性名也可以使用字符串

    留空花括号  var person = {}; //相当于new Object()

      2)访问对象属性:

      点表示法(建议使用)

    alert(person.name);

      方括号表示法

    将访问的属性用字符串的形式放在方括号内,主要用于处理属性名中包含会导致语法错误的字符(例如空格)以及关键字或保留字

    alert(person["name"]);

    2.Array类型

      数组中的每一项可以保存任何数据类型

      数组的大小是可以动态调整的,即可以随着数据的添加自动增长以容纳新数据

      1)创建方法

      使用Array构造函数,其中new操作符可以省略(小括号)

    var colors = new Array();
    var colors = new Array(20);//创建长度为20的数组,注意不是值为20!!!!
    var colors = new Array("red");//创建含一项,内容为字符串“red”的数组
    var colors = new Array("red","blue","green");//创建含三项的数组

      数组字面量表示法(中括号)

    var colors = [];//空数组
    var colors = ["red","blue","green"];//创建一个包含三个字符串的数组

      2)length

      可以通过设置length属性,从数组末尾移除项或向数组中添加新项

    //移除项
    var colors = ["red","blue","green"];
    color.length = 2;
    alert(color[2]);//undefined
    
    //新增项的值为undefined
    var colors = ["red","blue","green"];
    color.length = 4;
    alert(color[3]);//undefined
    
    //在数组末尾添加新项
    var colors = ["red","blue","green"];
    colors[color.length] = "black";//在3的位置添加新颜色
    
    //在99处插入一个值,数组新长度变为100,位置3~99并不存在,访问他们将返回undefined
    var colors = ["red","blue","green"];
    colors[99] = "black";
    alert(colors.length);//100

       3)栈方法

      栈是一种LIFO(last-in-first-out,后进先出)的数据结构

      push()方法可以接受任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的长度

    var colors = new Array();
    var count = colors.push("red","green");
    alert(count);//3 

      pop()方法可以从数组末尾移除最后一项,减少数组的length值,然后返回移除的项

    var colors = new Array("red","green","black");
    var item = colors.pop();
    alert(item);//"black"
    alert(colors.length);//2

      4)队列方法

      队列数据结构的访问规则是FIFO(first-in-first-out,先进先出),在列表的末端添加项,从列表的前端移除项

      push()方法可以接受任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的长度

      shift()方法可以移除数组中的第一个项返回该项同时将数组长度减一

      unshift()方法可以在数组前端添加任意个项返回新数组的长度

      4)重排序方法

      reverse()方法反转数组的顺序

      sort()方法默认升序排列数组项(比较得到的字符串

    var values = [1,0,5,10,15];
    values.sort();
    alert(values);//0,1,10,15,5

      sort()可以接受一个比较函数作为参数

    //比较函数(升序)
    function compare(value1,value2)
    {
        if(value1 < value2)
            return -1;
        else if(value1 > value2)
            return 1;
        else
            return 0
    }
    //比较函数简化为
    function compare(value1,value2)
    {
        return value1 - value2;//降序为 value2 - value1
    }
    
    var values = [1,0,5,10,15];
    values.sort(compare);
    alert(values);//0,1,5,10,15

      5)操作方法

      concat()方法:先创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组

              如果没有参数,就复制当前数组并返回副本

              如果参数是一个或多个数组,就将这些数组中的每一项添加到结果数组中

              如果传递的是,就将这些值添加到数组末尾

    var colors = new Array("red","green","blue");
    var colors2 = colors.concat("yellow",["black","brown"]);
    alert(colors);//red,green,blue
    alert(colors2);//red,green,blue,yellow,black,brown

      slice()方法:基于当前数组的一项或是多项创建一个新数组

              一个参数:返回该参数指定位置开始到当前数组末尾的所有项

              两个参数:返回起始和结束位置之间的项——包括起始位置,但不包括结束位置

              若有负数:就用数组长度加上该数来确定相应的位置(在包含5项的数组中,slice(-2,-1)==slice(3,4)

    var colors = new Array("red","green","blue","yellow","purple");
    var colors2 = colors.slice(1);
    var colors2 = colors.slice(1,4);
    alert(colors2);//red,green,blue,purplle
    alert(colors3);//red,green,blue

       splice()方法:

              删除(2个参数):要删除的第一项的位置、要删除的项数

                        splice(0,2)//删除数组前两项

              插入(3个参数):起始位置、0、要插入的项

                       splice(2,0,“red”,“green”)//从位置2插入两个字符串

              替换(3个参数):起始位置、要删除的项、要插入的项

                      splice(2,1,“red”,“green”)//从位置2删除一项并插入两个字符串 

      返回一个包含原始数组中删除的项的数组 

      6)位置方法(实现查找功能)

      indexOf():从数组的开头开始向后查找

      lastIndexOf():从数组的末尾开始向前查找

      这两个方法都可以接受两个参数:要查找的项、查找起点的索引

      返回要查找的项在数组中的位置(没找到返回-1)

      7)迭代方法

      接受两个参数:在每一项上运行的函数(接受数组项的值、该项在数组中的位置、数组对象)、运行该函数的作用域对象

      every():对数组中的每一项运行给定函数,若该函数对于每一项都返回true,则返回true

    var number = [1,2,3,4,5,4,3,2,1];
    var everyResult = number.every(function(item,index,array)
    {
        return (item > 2);
    });
    alert(everyResult);//false

      some():对数组中的每一项运行给定函数,若该函数对于任一项返回true,则返回true

    var number = [1,2,3,4,5,4,3,2,1];
    var someResult = number.some(function(item,index,array)
    {
        return (item > 2);
    });
    alert(someResult);//true

      forEach():对数组中的每一项运行给定函数,无返回值,相当于for循环

      filter():对数组中的每一项运行给定函数,返回true的项组成的数组

    var number = [1,2,3,4,5,4,3,2,1];
    var filterResult = number.filter(function(item,index,array)
    {
        return (item > 2);
    });
    alert(filterResult);//[3,4,5,4,3]

      map():对数组中的每一项运行给定函数,返回每次调用函数的结果组成的数组

    var number = [1,2,3,4,5,4,3,2,1];
    var mapResult = number.map(function(item,index,array)
    {
        return item * 2 ;
    });
    alert(mapResult);//[2,4,6,8,10,8,6,4,2]

      8)归并方法

      reduce():从数组第一项开始

      reduceRight():从数组最后一项开始

      接受两个参数:再每一项上调用的函数(前一个值、当前值、项的索引数组对象)、作为归并基础的初始值

    //求和
    var values = [1,2,3,4,5];
    var sum = values.reduce(function(prev,cur,index,array){
        return prev + cur;
    });
    alert(sum);//15
  • 相关阅读:
    webdav srs相关
    How To Configure WebDAV Access with Apache on Ubuntu 14.04
    ubuntu 编译lighttpd
    srs编译及推流测试
    Compile pciutils (lspci, setpci) in Windows x86,在 Windows x86 平台下编译 pciutils (lspci, setpci)
    mingw MSYS2 区别
    Qt之美(三):隐式共享
    Qt之美(二):元对象
    Qt之美(一):d指针/p指针详解
    C++的栈空间和堆空间
  • 原文地址:https://www.cnblogs.com/syyy/p/6131265.html
Copyright © 2011-2022 走看看