【前端学习笔记】JavaScript数组

JavaScript数组

声明数组

  1. 通过new创建数组
  2. 省略new运算符创建数组
  3. 数组常量进行赋值。(JS一般使用中括号[]);
var arr = new Array(100, true, "hello");
var arr = Array(100, true, "hello");
var arr = [100, true, "hello"];
//声明长度为10的数组,数组中没有数据。
var arr = new Array(10);
var arr = Array(10);

数组的属性:

  • 数组.length 返回值数组【元素】的个数。

元素:

  • 访问数组的元素:

  • 数组[下标]; 下标是从0开始的。

  • 数组和循环是天生一对。

    • for循环
    • for…in循环 快速遍历

Math.random() 随机数

        var random = new Array(10);
        for(var i = 0; i<10;i++){
            random[i]=parseInt(Math.random()*10);
        }
        document.write(random);

        for (var i in random){
            document.write(random[i]+"<br/>");
        }

数组的方法

  • 栈结构

    • push
      • 功能:给数组的末尾添加元素。
      • 格式:数组.push(参数1, 参数2…);
      • 返回值:插完元素以后数组的长度。
    • pop
      • 功能:从数组末尾取下一个元素
      • 格式:数组.pop()
      • 参数:没有参数
      • 返回值:取下一个元素
  • 队列

    • push
    • shift
      • 功能:从数组的头部取下一个元素
      • 格式:数组.shift()
      • 参数:没有参数
      • 返回值:取下的元素
    • unshift
      • 功能:从数组的头部插入元素
      • 格式:数组.unshift(参数1, 参数2…)
      • 返回值:插完元素以后数组的长度。
  • reverse 逆序

  • sort

    • 功能:默认从小到大排序,按照字符串排序。
    • 格式:数组.sort()
    • 参数:一个函数,代表要怎么去进行排序(固定用法)
      1. 按照数字从小到大

         arr.sort(function(value1, value2){
         			return value1 - value2;
         })
        
      2. 按照数字从大到小

         arr.sort(function(value1, value2){
         			return value2 - value1;
         })
        
  • splice()

    • 功能:可以完成 增、删、改三个功能
    • 格式:数组.splice(start, length, 数据1, 数据2…);
    • 参数:
      • start 开始截取的位置
      • length 截取的元素的长度
      • 第三个参数开始:在start位置,插入的元素。
    • 返回值:截取下来的元素组成的数组。
  • concat

    • 功能:拷贝数组,生成一个新数组(不会修改原数组)
    • 合并数组,如果参数是数组,数组中元素单独合并
  • slice

    • 功能:数组提取元素(不会修改原数组)
    • 格式:数组.slice(start, end); [start, end)
  • join()

    • 功能:将数组中的元素,用传入的拼接符,拼接成一个字符串
    • 格式:数组.join(“字符串”)
    • 返回值:拼接好的字符串。
        // 创建数组
        var countries = new Array("china", "usa", "uk", 'japan');
        document.write(countries + "<br/>");
        // china, usa, uk, japan

        //栈结构

        /* push
        功能:给数组的末尾添加元素。
        格式:数组.push(参数1, 参数2…);
        返回值:插完元素以后数组的长度。 */
        document.write("push返回值:" + countries.push("korea", "russia") + " 原数组:" + countries + "<br/>")
        // push返回值:6 原数组:china, usa, uk, japan, korea, russia

        /* pop
        功能:从数组末尾取下一个元素
        格式:数组.pop()
        参数:没有参数
        返回值:取下一个元素 */
        document.write("pop返回值:" + countries.pop() + " 原数组:" + countries + "<br/>")
        // pop返回值:russia 原数组:china, usa, uk, japan, korea


        //队列

        // push
        /* shift
        功能:从数组的头部取下一个元素
        格式:数组.shift()
        参数:没有参数
        返回值:取下的元素 */
        document.write("shift返回值:" + countries.shift() + " 原数组:" + countries + "<br/>")
        // shift返回值:china 原数组:usa, uk, japan, korea

        /*  unshift
         功能:从数组的头部插入元素
         格式:数组.unshift(参数1, 参数2…)
         返回值:插完元素以后数组的长度。 */
        document.write("unshift返回值:" + countries.unshift("thailand") + " 原数组:" + countries + "<br/>")
        // unshift返回值:5 原数组:thailand, usa, uk, japan, korea


        // 1.concat() 方法可以基于当前数组创建一个新数组。
        var co = [1, 2, 3]
        document.write("concat返回值:" + countries.concat() + " 原数组:" + countries + "<br/>")
        // concat返回值:thailand, usa, uk, japan, korea 原数组:thailand, usa, uk, japan, korea

        document.write("concat返回值:" + countries.concat(co) + " 原数组:" + countries + "<br/>")
        // concat返回值:thailand, usa, uk, japan, korea, 1, 2, 3 原数组:thailand, usa, uk, japan, korea

        // 2.slice() 方法可以基于当前数组获取指定区域元素[start, end)
        document.write("slice返回值:" + countries.slice(0, 2) + " 原数组:" + countries + "<br/>")
        // slice返回值:thailand, usa 原数组:thailand, usa, uk, japan, korea

        // 3.splice() 方法由于其参数的特殊性,可以完成 增、删、改三个功能

        document.write("splice返回值:" + countries.splice(1, 0, "india") + " 原数组:" + countries + "<br/>")
        // splice返回值: 原数组:thailand, india, usa, uk, japan, korea
        document.write("splice返回值:" + countries.splice(1, 2) + " 原数组:" + countries + "<br/>")
        // splice返回值:india, usa 原数组:thailand, uk, japan, korea
        document.write("solice返回值:" + countries.splice(0, 1, "poland") + " 原数组:" + countries + "<br/>")
        // solice返回值:thailand 原数组:poland, uk, japan, korea

        // 4.join() 方法用数组元素组成字符串。
        document.write("join返回值:" + countries.join("-") + " 原数组:" + countries + "<br/>")
        // join返回值:poland - uk - japan - korea 原数组:poland, uk, japan, korea

        // 5.reverse() 逆向排序
        document.write("reverse返回值:" + co.reverse() + " 原数组:" + co + "<br/>")
        // reverse返回值:3, 2, 1 原数组:3, 2, 1

        // 6.sort() 从小到大排序,字符串排序
        document.write("sort返回值:" + co.sort() + " 原数组:" + co + "<br/>")
        // sort返回值:1, 2, 3 原数组:1, 2, 3
        document.write("sort返回值:" + co.sort(function (value1, value2) { return value1 - value2 }) + " 原数组:" + co + "<br/>")
        // sort返回值:1, 2, 3 原数组:1, 2, 3
        document.write("sort返回值:" + co.sort(function (value1, value2) { return value2 - value1 }) + " 原数组:" + co + "<br/>")
        // sort返回值:3, 2, 1 原数组:3, 2, 1
     

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值