js的内置对象之数组

内置对象:浏览器中自己封装好的对象,我们可以直接调用它的属性和方法。

数组字符串数学日期

数组:

的ECMAScript中的数组数组的每一项可以保存任意类型数据。长度可以调整,随着数据增加可以增长。

学习目标:

  1. 创建数组
  2. 数组元素读写
  3. 数组的长度属性

创建数组的基本方式:

  1. Array构造函数,new Array()。说明:1。预先知道数组要保存的项目数量2.向构造函数中传递数组应包含的项。
var colors=new Array();
    var nums=new Array(1,3,6,9);
    document.write(colors);//
    document.write(nums);//1,3,6,9
    console.log(colors)//[]
    console.log(nums)//[1,3,6,9]

  2.使用数组字面量表示法。由一对包含数组项的方括号[]表示,多个数组项之间以逗号隔开。

 var cols=["red","green","grey"];
    var info=[6,"marry",true,{email:"[email protected]"}];
    console.log(info)

数组元素的读写:

 var cols=["red","green","grey"];
    var colors=new Array();
    //设置
    colors[0]="#fff";
    colors[1]="#0f0";
    colors[1]="#0f3";
    var info=[6,"marry",true,{email:"[email protected]"}];
    //读取
    console.log(cols[1]);

数组的长度:array.length返回值:number

说明:

  1. 通过设置长度可以从数组的末尾移除项或向数组中添加新项。
  2. 把一个值放在超出当前数组大小的位置上时,会重新计算数组长度值,长度值等于最后一项索引加1。
    //说明1
    var arr=["a","b","c","d"];
    arr.length=3;//移除项。不建议
    console.log(arr);//["a","b","c"]
    //说明2
    arr[99]="z";
    console.log(arr.length);//100

数组遍历:

    var arr=["a","b","c","d"];

    for(var i=0;i<arr.length;i++){
        console.log(arr[i])
    }

学习目标:

扫描二维码关注公众号,回复: 2461752 查看本文章

掌握数组的栈方法:

  1. push()
  2. unshift()
  3. shift()
  4. pop()

push():把它的参数顺序添加到尾部返回值:。把指定的值添加到数组后的长度也就是返回的是数

    var cols=["red","green","grey"];
    var len=cols.push("blue");
    console.log(len);//4

unshift():把它的参数顺序添加到开头返回值:。把指定的值添加到数组后的长度也就是返回的是数

shift():删除第一个元素返回值:被删除的那个元素

pop():删除最后一个元素返回值:被删除的那个元素

学习目标:

  1. 数组的转换方法
  2. 数组的重排序方法

join:arrayObject.join(separator)。用于把数组中的所有元素放入一个字符串。把数组转换成字符串。返回值:字符串。

加入默认以逗号分隔。

    var nums=[2,4,5];
    console.log(nums.join())//2,4,5
    var words=["bored","interesting","hello","love"];
    var str=words.join("-");//bored-interesting-hello-love
    console.log(str);
    var cols=["red","green","grey"];
    var colstr=cols.join("");//redgreengrey
    console.log(colstr);

reverse:用于颠倒数组中元素的顺序返回值:数组。

    //返回字符串542
    var nums=[2,4,5];
    console.log(nums.reverse().join());

sort():用于对数组的元素进行排序。返回值:数组。

说明:

  1. 即使数组中的每一项都是数值,排序()方法比较的也是字符串。
  2. 排序()方法可以接收一个比较函数作为参数。
  3. 实际是的toString()了一下转成字符串了,都是按照字符串来比较的。
    var nums=[12,14,88,9,23];
    console.log(nums.sort());//按字符串比较
    //[12, 14, 23, 88, 9]
    nums.sort(function(a,b){return b-a});//降序
    console.log(nums);//[88, 23, 14, 12, 9]

concat():连接两个或多个数组。返回值:数组。

    var arr1=["a","b","c"],arr2=["d","e",1,3],arr3;
    arr3=arr1.concat(arr2,"n",8,99);
    console.log(arr3);//["a", "b", "c", "d", "e", 1, 3, "n", 8, 99]

slice():从已有的数组中返回选定的元素。返回值:数组。

参数:启动(必需)规定从何处开始选取,如是负数,从数组尾部开始算起。

           端(可选)规定从何处结束选取,是数组片段结束除的数组下标。

说明:

  1. 如没有指定结束,切分的数组包含从开始到数组结束的所有元素。
  2. 如切片方法的参数中有一个负数,则用数组长度加上该数确定相应的位置。
  3. 截取从开始和结束(不包含该元素)的元素,即从开始到结束-1的元素。
var cols=["red","green","grey","yellow","orange"];
    var newcols1=cols.slice(1,2);
    console.log(newcols1)//["green"]
    var newcols2=cols.slice(-2,5);//3,4
    console.log(newcols2);//["yellow", "orange"]
//完成以下代码段,实现b数组对a数组的拷贝,方法越多越好
    var a=[1,"yes",3],b;
    //1
    b=new Array();
    for(var i=1;i<= a.length;i++){
        b.push(a[i]);
    }
    console.log(b);
    //2
    b=[].concat(a);
    console.log(b);
    //3
    b= a.slice(0);
    console.log(b);

学习目标:

  1. splice()方法删除数组项
  2. 插入数组项
  3. 替换数组项

删除操作:splice(index,count),删除从索处开始的零个或多个元素。返回值:含有被删除元素的数组。如果count不设置,则删除从索引开始的所有值。

插入:splice(index,0,item1,.....,itemX)在指定位置插入值。

           参数:index是起始位置.0要删除的项数.item1,.....,itemX:要插入的项。返回值:空的数组即[]。

替换:剪接(指数,计数,物品1,......,itemX),删除指定位置的值,并且在指定位置插入。

          参数:Index:起始位置,count:要删除的项.item1,.....,itemX:要插入的项。返回值:从原始数组中删除的项(如果没有任何项,则返回空数组)

 var arr=["a","b","c","d","e","k","l","m"];
    //删除
    var delarr=arr.splice(2,2);
    console.log(arr);//["a", "b", "e", "k", "l", "m"]
    console.log(delarr);// ["c", "d"]
    //插入
    var insertarr=arr.splice(3,0,"o","p");
    console.log(arr);//["a", "b", "e", "o", "p", "k", "l", "m"]
    console.log(insertarr);//[]
    //替换
    var replacearr=arr.splice(3,2,"x","y","z");
    console.log(replacearr);//["o", "p"]
    console.log(arr);//["a", "b", "e", "x", "y", "z", "k", "l", "m"]

学习目标:掌握的ECMAScript为数组实例添加的两个位置方法:的indexOf(),lastIndexOf()

indexOf(searchvalue,startIndex)从指定位置开始向后查找,若没有,则从0开始。

        参数:searchvalue:必需,要查找的项.startIndex:可选,起点尾椎的索引返回值:数,查找要查找的项在数组中第一次出现的的位置,没有找到的情况下返回 - 1。

var nums=[1,7,5,7,8,6,99];
    var pos=nums.indexOf(7);
    console.log(pos);//1

lastIndexOf(searchvalue,startIndex)从数组的末尾开始向前查找出现第一个searchvalue的索引。参数和返回值与indexOf一致。

 var nums=[1,7,5,7,8,6,99];
    var pos=nums.lastIndexOf(7);
    console.log(pos);//3
//封装一个方法实现indexOf的功能
    var nums=[1,7,5,7,8,6,99];
    function ArrayIndexOf(arr,value){
        for(var i=0;i<arr.length;i++){
            if(arr[i]===value){
                return i;
            }
        }
        return -1;

    }
    var pos2=ArrayIndexOf(nums,99);
    console.log(pos2)

说明:

  1. 在比较一个参数与数组中的每一项时,会使用全等操作符,即要求查找的项必须严格相等。
  2. 数组的位置方法是ECMAScript5为数组实例新增的,所以支持的浏览器只有:IE9 +,Firefox2 +,Safari3 +,Opera9.5

sort()方法:用于对数组的元素进行排序。返回值:原数组上进行排序,原数组会发生变化,不会生成新的数组。

arrObject.sort(function)

function 可选,规定数组的排序顺序
a,b function的参数,代表每次排序时比较的两个数组的项。当返回值为1时,就交换两个数组项的顺序,否则就不交换。

参数说明:

1.如果不使用参数,那么会按照字符编码的顺序进行比较。它会将数组里面的项转化为字符串然后去比较。

/*2--50
    23--5051
    3--51
    33--5151
    1--49
    12--4950
    49>4950>50>5051>51>5151
    */
    var arr=[2,23,3,33,1,12];
    var arrsort=arr.sort();
    console.log(arrsort);//[1, 12, 2, 23, 3, 33]

2.如果想根据需求进行升序或降序,那么我们就要用到参数了。它的参数是一个函数,该函数会对两个值进行比较。

    var arr=[1,2,0,21,15,6,34,9,45];
    var arrsort=arr.sort(function(a,b){return a>b});
    console.log(arrsort);
    //[0, 1, 2, 6, 9, 15, 21, 34, 45]

猜你喜欢

转载自blog.csdn.net/weixin_40512519/article/details/81186039
今日推荐