zoukankan      html  css  js  c++  java
  • 3:Array构造函数

    知识梳理

    //1 判断数组  instanceof  Array.isArray(arr);
    //2 添加元素 .unshift() .push() 
    //3 删除元素 .shift() .pop()
    //4 查找索引  arr.indexOf()  arr.lastIndexOf()
    //5 数组排序  sort
    //6 数组转字符串 arr.toString() arr.join('|')  

    一 基本属性

    1)参数说明

    var arr = new Array(2);//创建了一个长度为2的空数组
    var arr = new Array('2');//创建了一个元素为字符串2的数组
    var arr = new Array(2,3);//创建了包含2个元素的数组

    2)异常

    当size为负数 或者大于最大值时 会抛出RangeError异常
    var arr = new Array(2); //Uncaught RangeError: Invalid array length
    未捕获 范围错误 无效 数组 长度

    3)直接量语法

    var arr = [];

    4)属性

    //只有一个length属性

    二  常用方法 

    1)判断数组

    方法一 instanceof 运算符检测
    var arr = new Array(); //创建一个空数组
    console.log(arr instanceof Array ); //返回布尔值
    方法二 
    Array.isArray(arr_name);

    2)添加元素

    var arr = [1,2,3,4];
    var res1 = arr.unshift(0,'李白');//向数组开头压入一个或多个元素
    var res2 = arr.push(5,'杜甫');//向数组尾部压入一个或多个元素
    
    console.log(res1);//返回值:返回新数组的长度
    console.log(res2);//返回值:返回新数组的长度
    console.log(arr);// [0, "李白", 1, 2, 3, 4, 5, "杜甫"]

    3)删除元素

    var arr = [1,2,3,4];
    var res = arr.pop();//1 删除数组末尾的最后一个元素
    var res1 = arr.shift();//2 删除数组开头的第一个元素
    
    console.log(res);//4 返回值:被删除的元素
    console.log(res1);//1 返回值:被删除的元素
    console.log(arr);//[2,3] 

    4)查找元素的索引号

    //1 indexOf()  从前往后查找
    var arr = ['李白','杜甫','白居易','白居易'];
    console.log(arr.indexOf('白居易')); //返回 2  如果存在 返回索引号
    console.log(arr.indexOf('李商隐')); //返回-1  如果不存在 返回-1
    
    //2 lastIndexOf() 从后往前查找 
    console.log(arr.lastIndexOf('白居易'));//如果存在 返回索引号 
    console.log(arr.lastIndexOf('李商隐'));//如果不存在 返回-1 

    5)数组翻转

    var arr = [1,2,3];
    arr.reverse();
    console.log(arr); //[3, 2, 1]

    6)数组排序 sort()

    //冒泡排序
    var arr1 = [10,9,22,34,35,45,41];
    //arr1.sort();//做冒泡有一些问题 它是基于 UTF-16代码
    
    //做一些改进 实现冒泡算法 [ 里面的函数写法是固定的 ]
    arr1.sort(function (a,b) {
        return b - a;//[a-b是从小到大] [b-a从大大小]
    })
    console.log(arr1);

    7)将数组装换为字符串

    //方法1 toString()
    //方法2 join('分隔符号')
    var arr = [1,2,3];
    console.log(arr.toString());//转换为字符串
    console.log(arr.join('|'));//可以用其他符号分割,默认是逗号

    三 练习案例

    1)把工资大于2000的删除

    var arr = [1500,2200,3200,1400];
    var newArr = [];
    for (var i = 0;i < arr.length; i++) {
        if (arr[i] < 2000) {
            newArr.push(arr[i]);
        }
    }
    console.log(arr);
    console.log(newArr); 
    //用到的知识点:添加数组元素

    2)数组去重 [ 重点案例 ] 

    //目标:把旧数组中不重复的元素选出来,重复的只保留一个 存放到新数组中
    //核心思路:我们遍历旧数组,拿旧数组的元素值去新数组中匹配 如果不存在就push到新数组中
    function unique(arr) {
        var newArr = [];
        
        for (var i = 0; i < arr.length; i++) {
            if (newArr.indexOf(arr[i]) === -1) {
                newArr.push(arr[i])
            }
        }
        return newArr;
    }
    var res = unique(['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b']);
    console.log(res);

    3)求某个值出现的次数和位置 [ 重点案例 ]

    //举一反三  求数组中 red 出现的位置和次数    
    var arr = ['red','blue','green','pink','red'];
    var index = arr.indexOf('red');
    var num = 0;
    while (index !== -1) {
        console.log(index);
        num++;
        index = arr.indexOf('red',index + 1);
    }
    console.log('red出现了:' + num + '');
  • 相关阅读:
    linux磁盘管理
    yarn一直在跑一个用户为dr.who的application
    HBASE强制删除表
    Centos安装git2.2.1
    MySQL类型float double decimal的区别
    PHP的extension_dir设置问题
    opencart安装和使用PHPMailer
    在路上
    修改win10中linux子系统的root密码
    关于js for循环click事件
  • 原文地址:https://www.cnblogs.com/fuyunlin/p/14409071.html
Copyright © 2011-2022 走看看