Array数据处理(一)

<script>
        // 数组
        // 创建数组
        // 方法一:Array 构造函数
        // var arr1 = new Array(); // 创建了一个空数组
        // var arr2 = new Array(20); // 创建了一个长度为20的数组
        // var arr3 = new Array("测试", "zhang", 0,null);
        // console.log(arr1); // []
        // console.log(arr2.length); // 数组长度 20
        // console.log(arr3); //["测试", "zhang", 0, null]

        // 方法二:数组字面量表示法
        // var arr4 = []; //创建一个空数组
        // var arr5 = [20]; // 创建一个包含1项的数组
        // let arr6 = ["测试", "zhang"]; // 创建一个包含2个字符串的数组

        // 数组取值,储存
        // let array = [10,20,30]
        // // 取值
        // console.log(array[0]); // 10
        // // 长度
        // console.log(array.length); // 3
        // // 存储
        // array[0]='储存'
        // console.log(array); // ["储存", 20, 30]

        // 创建 长度为7的数组
        let arr = [1, 3, 9, 8, '张', '哈', '略']
        // console.log(arr.length); // 7

        // 2 push 在数组尾部添加,返回添加后的数组元素的个数
        // console.log(arr.push('尾部')); // 8
        // console.log(arr); // [1, 3, 9, 8, "张", "哈", "略", "尾部"]

        // 3 unshift 在数组头部添加,返回数组添加后元素的个数
        // console.log(arr.unshift('头部')); // 8
        // console.log(arr); // ["头部", 1, 3, 9, 8, "张", "哈", "略"]

        // 4 shift 删除数组的第一个元素,返回被删除的元素
        // console.log(arr.shift()); // 返回删除第一个元素 1
        // console.log(arr); // [3, 9, 8, "张", "哈", "略"]

        // 5 pop 删除数组的最后一个元素,返回被删除的元素
        // console.log(arr.pop()); // 略
        // console.log(arr); // [1, 3, 9, 8, "张", "哈"]

        // 6 concat    a.concat(b,b2,..)  将两个数组或多个拼接在一起,返回一个拼接后的新数组,且a内部的元素在新数组的前部
        // let arr1 = [1,2]
        // let arr2 = [3,4]
        // let arr3 = [5,6]
        // console.log(arr1.concat(arr1,arr2,arr3));[1, 2, 1, 2, 3, 4, 5, 6]

        // 7 toString 将数组转换成字符串
        // console.log(arr.toString()); //1,3,9,8,张,哈,略

        // 8 join (&) 将数组以&符号间隔转换为字符串   返回一个字符串
        // console.log(arr.join('-')); //1-3-9-8-张-哈-略

        // 9 reverse()  反转   返回倒序排列后的新数组
        // console.log(arr.reverse()); //["略", "哈", "张", 8, 9, 3, 1]

        // 10 indexOf() 方法可返回数组中某个指定的元素位置 从0 -> arr.length -1 首次出现的位置
        // 不能判断是否有NaN的元素。
        // array.indexOf(item,start)
        // item 查找的元素 开始索引为0
        // start 从哪个位置上开始查找
        // console.log(arr.indexOf('张'));//存在返回该元素位置 4 不存在返回 -1

        // 11 lastIndexOf() 方法可返回一个指定的元素在数组中最后出现的位置,从该字符串的后面向前查找 最后出现的位置
        // 不能判断是否有NaN的元素。
        // array.lastIndexOf(item,start)
        // console.log(arr.lastIndexOf('张')); // 存在返回该元素位置 4 不存在返回 -1

        // 12 includes 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false
        // arr.includes(item,start)
        // 第二个参数可以是负数,表示从右数过来第几个,但是不改变判断搜索的方向,搜索方向还是从左到右
        // 如果fromIndex 大于等于数组长度 ,则返回 false 。该数组不会被搜索:
        // console.log(arr.includes(9)); //true
        // console.log(arr.includes(9,10)); //false


        // 13 判断是否是数组
        // 13.1
        // let arr1 =[]
        // console.log(Array.isArray(arr1)); //true
        // // 13.2
        // console.log(Object.prototype.toString.call(arr1).slice(8, -1)); // Array
        // // 13.3
        // console.log(arr1.length); // 判断数组长度 0

        // 14 扩展运算符 ...
        // console.log(...arr,'测试'); //1 3 9 8 "张" "哈" "略"
        // 合并数组
        // console.log([...arr,"测试",]); // [1, 3, 9, 8, "张", "哈", "略", "测试"]
        // 将字符串转换为数组
        // console.log([..."今天天气怎么样?"]); //["今", "天", "天", "气", "怎", "么", "样", "?"]

        // 15 split() 把一个字符串分割成字符串数组
        // string.split(a,b)
        // a:字符串或正则表达式 ,必填
        // b:返回该字符串最大长度 ,可选
        let str = "a:b:c:456:123"
        // console.log(str.split(":")); // ["a", "b", "c", "456", "123"]
        
        // 16 slice 返回从原数组中指定开始下标到结束下标之间的项组成的新数组 从1开始 截取数组生成新数组,原数组不受影响
        // console.log(arr.slice(0)); //[1, 3, 9, 8, "张", "哈", "略"] 
        // console.log(arr.slice(1, 4)); //[3, 9, 8]
        // console.log(arr.slice(1, -2)); //[3, 9, 8, "张"]
        // console.log(arr.slice(-4, -1)); //[8, "张", "哈"]
        // console.log(arr); //[1, 3, 9, 8, "张", "哈", "略"]

        // 17 splice 数组处理 新建数组,并且更改原来的
        // 17.1 splice 删除
        /* array.splice(index,n)
           index:数组中需要删除数据的起始位置
           n:需要删除的元素,数据的个数
        */
        // console.log(arr.splice(1,2)); //输出删除元素  [3, 9]
        // console.log(arr); // [1, 8, "张", "哈", "略"]

        // 17.2 splice 插入
        /* array.splice(index,0,data1,data2,....)
           index:数组中需要插入数据的起始位置
           0:删除的个数为0
           data1,data2:需要插入的元素,用逗号隔开
        */
        // console.log(arr.splice(1,0,'添加元素1','添加元素2')); // []
        // console.log(arr); //[1, "添加元素1", "添加元素2", 3, 9, 8, "张", "哈", "略"]

        // 17.3 splice 替换
        /* array.splice(index,n,data1,data2,......)
           index:需要替换的元素的起始位置
           n:需要替换的元素的个数,实质是删除
           data1,data2:需要插入元素,用逗号隔开
        */
        // console.log(arr.splice(1,1,'插入元素1'));// [3] 元素3 被删除
        // console.log(arr); //[1, "插入元素1", 9, 8, "张", "哈", "略"]

        // 18 sort() 排序 
        // 18.1 默认排序顺序是根据字符串UniCode码
        // console.log(arr.sort()); // [1, 3, 8, 9, "哈", "张", "略"]

        // 18.2  升序排序 降序排序 
        // let arr1 = ["55","6654","4454","33","66","8548","00"]
        // // 并不是我们想要的结果
        // console.log(arr1.sort()); // ["00", "33", "4454", "55", "66", "6654", "8548"]
        // // 升序排序
        // function sortOrder(a,b) {
        //     return a-b //b-a 降序排序 
        // }
        // console.log(arr1.sort(sortOrder)); //["00", "33", "55", "66", "4454", "6654", "8548"]

        // 18.3 按照数组对象中某个属性值排序
        // let arr1 = [{name:'zhang',age:10},{name:'li',age:20},{name:'wang',age:30}]
        // function sortOrder(arr) {
        //     return function(a,b) {
        //         let data1 = a[arr]
        //         let data2 = b[arr]
        //         return data2 - data1 // age 降序排序
        //     }
        // }
        // console.log(arr1.sort(sortOrder('age')));// [{name:'wang',age:30},{name:'li',age:20},{name:'zhang',age:10}]

        // 18.4 根据参数来确定是升序还是降序
        // let arr1 = [{name:'zhang',age:10},{name:'li',age:20},{name:'li',age:20},{name:'wang',age:30}]
        // function sortOrder(arr,rev) {
        //     // 第二个参数没有传递,默认升序排列
        //     if (rev == undefined) {
        //         rev = 1
        //     }else{
        //         rev = rev ? 1 : -1 //-1 降序 
        //     }
        //     return function (a,b) {
        //         a=a[arr]
        //         b=b[arr]
        //         if (a<b) {
        //             return rev * -1
        //         }
        //         if (a>b) {
        //             return rev * 1
        //         }
        //         return 0 
        //     }
        // }
        // console.log(arr1.sort(sortOrder('age'))); //默认升序
        // console.log(arr1.sort(sortOrder('age',true))); //true 升序
        // console.log(arr1.sort(sortOrder('age',false))); //false 降序

        // 比较函数应该具有两个参数 a 和 b,其返回值如下:
        // 若 a 小于 b,即 a - b 小于零,则返回一个小于零的值,数组将按照升序排列
        // 若 a 等于 b,则返回 0
        // 若 a 大于 b, 即 a - b 大于零,则返回一个大于零的值,数组将按照降序排列
    </script>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值