美文网首页
javaScript的数组

javaScript的数组

作者: 孙子衡 | 来源:发表于2018-08-27 10:20 被阅读0次

    js中没有数组类型 js 中数组是以内置对象的形式存在


    数组定义01

    var attr = new Array('sunziheng','jack','jim','lili');
    console.log(typeof attr); // object
    console.log(attr);
    // 数组的取值 点(不能操控数值)和 []
    console.log(attr[0])

    var attr02 = new Array()  // 空数组
    var attr03 = new Array(10) // 如果数组内只要一个参数 而且是数值 之表明长度
    

    数组定义02

    var arr = ['11','22','33']
    console.log(arr);
    // 获取数组的长度 有几个单元
    console.log(attr.length)


    数组的遍历

    // 数组的遍历
    for (var i = 0;i <attr.length; i++) {
    console.log(attr[i]);
    }

    forEach() 遍历数组

    /*
    * forEach(function(value,index,arrSelf){
    *
    * value 指向当前元素的值
    * index 指向当前元素的索引
    * arrSelf 指向当前数组本身
    *
    * })
    *
    * */
    attr.forEach(function (a,b,c) {
    console.log(a);
    console.log(b);
    console.log(c);
    })


    常用数组函数

    /*
    * 定义数组的方式:
    * 1.使用new Array()
    * 2. 使用 [] 的方式定义数组
    *
    * */

    // 定义数组
    var arr01 = ['sunziheng01','sunzieheng02','sunziheng03','sunziheng04'];
    // indexOf()  正向查找数组单元 有查询的结果返回第一个对应的索引 不存在返回-1
    var res = arr01.indexOf("sunziheng03");
    console.log(res);
    // lastIndexOf() 反向查找 不存在就返回 -1
    var lastres = arr01.lastIndexOf('sunziheng03');
    console.log(lastres);
    
    // 数组的拼接
    var a = [1,2,3,4]
    var b = [5,6,7,8]
    var c = arr01.concat(a);
    var d = arr01.concat(a,b);
    console.log(c);
    console.log(arr01); // 凭借的和其没有关系
    
    // join() 将数组的单元进行连接 返回字符串
    var atrr02 = ['jim','lili','jack','jim02']
    var atrr03 = arr01.join('@');
    console.log(atrr03);
    console.log(typeof atrr03);  // string
    
    // reverse() 反转
    var arr04= atrr02.reverse(); // 反转后原数组改变
    console.log(arr04);
    console.log(atrr02);
    
    // 弹出(删除)最后一个元素
    var arr05 = atrr02.pop();
    console.log(arr05);
    console.log(atrr02);
    // 弹出(删除) 数组的第一个元素
    var arr06 = atrr02.shift();
    console.log(arr06);
    console.log(atrr02);
    
    // 数组的插入
    // push() 从数组尾部压入
    // unshift() 从数组的头部插入
    atrr08 = ['22','33']
    var arr09 = atrr08.push('44');
    console.log(atrr08);
    var arr10 = atrr08.unshift('11');
    var arr11 = atrr08.unshift(arr06);
    var  arr12 = atrr08.unshift(arr05);
    console.log(atrr08);
    

    //slice()[要前不要后) 数组元素的截取 不会影响原数组
    var arr = ['道剑','天迹','地冥','人觉','君奉天'];
    var res = arr.slice(1); // 1,到最后
    var res02 = arr.slice(2,4); // [2,4)
    var res03 = arr.slice(-2); //
    var res04 = arr.slice(-3,-2);
    console.log(res);
    console.log(res02);
    console.log(res03);
    console.log(res04);

    // splice() 截取 影响原数组
    var arr02  = ['11','22','33','44','55','66','77','88'];
    

    // var res = arr02.splice(1);
    // console.log(res);
    // var res = arr02.splice(3,2) // 位置3开始截取2个
    var res = arr02.splice(1,3,'sunziheng','sunziheng02'); // 截取并插入
    console.log(res);
    console.log(arr02);

    // 判断是否是数组
    var arr03 = [];
    var res = Array.isArray(arr03);
    console.log(res);
    
    // toString() 将对象转为字符串格式
    var obj = {
        uname:'sunziheng',
        age:1000
    }
    
    var objStr = obj.toString();
    console.log(objStr);
    console.log(typeof objStr);  // 没有太大作用
    
    // 数组元素的toString();
    var arr = [1,2,3,4];
    var newStr = arr.toString();
    console.log(newStr);
    console.log(typeof newStr);
    
    /*  sort() 对数组元素进行排序
    
    *     sort() 设置数组的单元以升序进行排列
    *     系统函数 进行数组单元的排序
    *     需要的就会说传入一个进行比较的回调函数
    * */
    var arr = [100,90,80,101,40,50];
    
    var res = arr.sort(function (a,b) {
    
        // 正序
    

    // if (a > b) {
    // return 1;
    // } else if (a < b) {
    // return -1;
    // } else {
    // return 0;
    // }
    //
    // return a - b; // 正序
    return b - a; // 倒序
    })
    console.log(res);

    /*
    自定义数组排序函数 == 冒泡排序
    规则:
    每次在此比较时选取当前数组中最大的元素 放到数组的末尾
    将相邻两个位置的值进行比较 如果该前面的值 > 后面的值 交换两者位置

    • */

      var arr = [100,30,20,50,70,80];
      for (var i = 0;i < arr.length - 1;i++) {

        if (arr[i] > arr[i + 1]) {
            // 交换位置 此时需要引入第三个变量
            var tmp = arr[i];
            arr[i] = arr[i+1];
            arr[i+1] = tmp;
    
        }
    }
    console.log(arr);
    
    for (var i = 0; i < arr.length - 1 -1;i++) {
        if (arr[i] > arr[i + 1]) {
            var tmp = arr[i];
            arr[i] = arr[i + 1];
            arr[i+1] = tmp;
        }
    }
    console.log(arr);
    console.log(arr.reverse());
    console.log(arr.max);
    

    </script>

    相关文章

      网友评论

          本文标题:javaScript的数组

          本文链接:https://www.haomeiwen.com/subject/bblziftx.html