Js数组(一)—数组方法

数组的创建

var array = new Array(); //创建一个数组

var array = new Array([size]); //创建一个数组并指定长度,注意[size]不是上限,是长度

var array = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值

var array = [element0, element1, element2, ....]//[]直接给array赋值来创建数组。

访问数组元素

var arr = [1, 2, 3];

console.log(arr[0]) // arr[0] = 1;

console.log(arr[1]) // arr[1] = 2;

console.log(arr[2]) // arr[2] = 3;

从上面可以看出数组的起始位不是从1开始,而是从0开始的。也就是说数组的索引是从0开始。

数组的属性

  1. length属性
    每一个数组都有一定的长度。数组的长度就是一个数组中没有元素时,被称为空数组。空数组在使用length属性时也会返回数组长度0;例如:
    var arr2 = [];//空数组

    console.log(arr2.length);//数组长度为0

    var arr =  [1, 2, 'hehe']

    console.log(arr.length);//数组长度为3

数组的一些方法

改变原数组的方法有reverse,sort,push,pop,shift,unshift,splice,,slice

1.push()和pop()

push()

  方法向数组的末尾添加一个或更多元素,并返回新的长度。

    var arr =  [1, 2, 'hehe']//定义一个数组,数组长度为3

    console.log(arr); //输出 (3)[1, 2, "hehe"],(3)表示数组长度为3,[]里面是数组的三个元素

    arr.push(4);//使用push()方法,将 4 push进arr这个数组

    console.log(arr);//输出(4) [1, 2, 'hehe', 4]

    arr.push(5, 6, 7)//将多个元素push进原数组,输出(6) [1, 2, "hehe", 5, 6, 7]

  注意push()方法改变了原数组,这很重要!!!要牢记。
  
  这里需要注意的是如果我们定义一个新的变量去接收push()后的数组,但是变量接收的不是一个新的数组,而是数组的相应长度。
  

    var arr = [1, 2, 3];

    var newArr = arr.push(4, 5, 6)

    console.log(arr);//(6) [1, 2, 3, 4, 5, 6]

    console.log(newArr);//6,输出是数组长度 6
pop()

  方法是数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。
  

    var arr = [1, 2, 3, 4, 5, 'loly'];

    var arr1 = arr.pop(1);

    console.log(arr1);//'loly', 输出数组最后一项的值

    console.log(arr);//输出剩余的数组里面的内容

2.shift()和unshift()

shift()

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

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

    var arr = [1, 2, 3, 4, 5, 'dwawd '];

    var arr1 = arr.join('-');

    var arr2 = arr.shift();

    console.log(arr1);//1-2-3-4-5-dwawd 

    console.log(arr);//(5) [2, 3, 4, 5, "dwawd "]

    console.log(arr2);//1,返回删除的第一项内容

    var length = arr.unshift('one', 'two');

    console.log(length);//返回数组长度

    console.log(arr);//(7) ["one", "two", 2, 3, 4, 5, "dwawd "]

3.sort()和reverse()

sort()

  按升序排列数组项——即最小的值位于最前面,最大的值排在最后面。并返回数组。

    var arr = [2,3,1,5,4];

         arr.sort();   

         console.log(arr);//1,2,3,4,5

    var arr1 = [1,12,3,45,33];

        arr1.sort();

        console.log(arr1);//(5) [1, 12, 3, 33, 45]/我们发现数组的排序发生错误。这时为什么呢?

  如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码Unicode的顺序进行排序。
  如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

1.若 a < b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
2.若 a = b,则返回 0。
3.若 a > b,则返回一个大于 0 的值。
也就是说:
  负数的时候,表示a在前面,b在后面。
  正数的时候,表示a在后面,b在前面。

所以如果我们想用sort()方法正常排序,我们需要引入一个排序函数。

    var arr = [1,12,3,45,33];

        function sortNumber(a,b)
            {
                return a - b//负数的时候,表示a在前面,b在后面。

                            //正数的时候,表示a在后面,b在前面。
            }

        console.log(arr);//(5) [1, 12, 3, 45, 33]

        console.log(arr.sort(sortNumber))//(5) [1, 3, 12, 33, 45]
reverse:

  方法会对反转数组项的顺序

    var arr = [1,2,3,4,5];

        console.log(arr.reverse());//5,4,3,2,1

它和sort()的操作方法一样。

4.splice()和slice()

splice()  

  这个方法是截取的意思,它有三个参数,第一个是截取开始的位置,第二个是截取的长度,第三个是参数是一组数据,代表我们要在截取的位置添加的数据。
  

var arr = [1, 2, 3, 4, 5];

arr.splice(1, 2, 100,188);

console.log(arr); // 1 100 188 4 5

  代码中2和3被截取,替换成100,188。这里100和188都是第三个参数。
  这个方法可以灵活的使用。如果我们截取的长度是0,那么就可以看作是在特定的位置上添加元素。
  如果我们不填写第三个参数,就变成了指定位置的删除元素。

slice()

  方法可从已有的数组中返回选定的元素.
  它传入两个元素start,end。返回从start开始到end的子数组,如果end这个参数没有被设置,则返回从start开始到最后的数组元素。
  

var arr = [1,2,3,4,5];

arr.slice(0,3);    //  [1,2,3]

arr.slice(3);      //  [4,5]

arr.slice(1,-1);   // [2,3,4]

arr.slice(-3,-2);  //  [3]; buggy in IE 4: returns [1,2,3]

不改变原数组的方法有,concat, join

5.concat()

   方法用于连接两个或多个数组。
   该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
  

        var arr = [1,2,3,4,5];

        var arr1= ['hehe', 'haha'];

        var arr2 = arr.concat(arr1);

        console.log(arr2);//(7) [1, 2, 3, 4, 5, "hehe", "haha"]

        console.log(arr1);//(2) ["hehe", "haha"]

        console.log(arr);//(5) [1, 2, 3, 4, 5]

6.join()

join(separator)

  把数组中的所有元素放入一个字符串。意思是将数组中的元素,通过separator连接,生成一个String类型的字符串。

arrayObject.join(separator)//用separator将数组中的元素连接起来然后生成字符串。
    var arr = [1, 2, 3, 4, 5, 'dwawd '];

    var arr1 = arr.join('-');

    console.log(arr1);//1-2-3-4-5-dwawd 

    console.log(arr);// (6) [1, 2, 3, 4, 5, "dwawd "]

小结  

  以上就是对数组方法的简单实用示例,然而并没有算完成对数组的学习。我们还需要知道,以上方法究竟是怎样实现的。深究其原理,才能熟练的运用数组。后面我们还会继续深入学习数组的原理。尽情期待。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值