5.JavaScript数据类型(引用数据类型)—Array类型(数组)

1.创建数组

        直接创建   

var arr=[1,2,3];

        通过构造函数创建

var arr = new Array(); //不传值时,arr为空数组
console.log(arr); //[]
var arr1 = new Array(3); //传一个值时,表示当前数组的长度是多少
console.log(arr1); //[empty*3],长度为3的空数组
var arr2 = new Array(2, 3, 4); //传2个以上值时,正常数组
console.log(arr2); //[2,3,4]

2.数组的使用

        数组使用[下标]来获取成员。

        使用length属性类获取数组的长度。

3.数组的操作方法

        ①增删改查

           (1)增加

                   push() 在数组末尾添加元素,可以添加多个值。(进栈)    返回数组长度,改变原数组。

                   unshift() 在数组头部添加元素,可以添加多个值。     返回数组长度,改变原数组。

                   使用[]来实现数组的增加,修改和查找。

           (2)删除

                    delete() 返回值为boolean值。    只删除值,不删除下标,改变原数组。

                    pop() 在数组末尾删除,不接收参数,调用一次删除一个。(出栈)返回删除的值,改变原数组。

                    shift() 在数组头部删除,不接收参数,调用一次删除一个。返回删除的值,改变原数组。

           (3)修改和查看,使用[下标]就可以实现

         ②转化,将数组转化成字符串

                (1)toString() 
                (2)join() 默认以逗号拼接数组,可以传入其他值拼接。

                返回一个包含数组所有元素的字符串,不改变原数组。

         ③查找

                (1)indexof()  返回第一次出现被查找元素的下标。

                (2)lastindexof() 返回最后一次出现被查找元素的下标。

        ④截取

                (1)slice(start,end)  返回截取出来的数组,不改变原数组。

                        不传参时相当于数组复制

                        传参时,如果start>end,返回空数组,正常时就返回截取的数组。

                (2)splice(start,length,数值1...);返回截取的数组,改变原数组。

                        前2个参数必传,开始位置和长度。当长度为0时,会进行添加操作;当长度后面传值时,相当于替换;如果长度后面不传值,相当于删除。

         ⑤合并(concat())

                不传值时,就是数组的复制

                传值会将后面的值合并到原数组上    返回产生的新数组,不改变原数组。

4.数组的排序方法

        ①reverse()  将数组反转。 改变原数组。

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

        ②sort() 根据传入的判定条件进行排序

                不传入条件,使用ASCII顺序进行排序。

                传入条件,如果输出正值:那么第一个值就放入第二个值的右边。

                                  如果输出负值:那么第一个值就放入第二个值的左边。

        var arr = [1, 2, 3, 4, 5];
        var a = arr.sort(function(a, b) {
            return b - a;
        });
        console.log(a); //[5, 4, 3, 2, 1]

5.数组的迭代器方法

        ①forEach()  对数组中的每一项运行给定条件,不产生新数组,没有返回值。

        ②map()  对数组中的每一项运行给定条件,产生新数组,返回每次函数调用的结果组成的数组。

        ③every() 默认值是false,对数组中的每一项运行给定条件,如果不满足就返回false;只有全部为true,才返回true。不产生新数组,返回值为Boolean值。

        ④some() 默认值是false,对数组中的每一项运行给定条件,只要有一次满足就返回true,否则就返回false。不产生新数组,返回值为Boolean值。

        ⑤filter() 必须传入一个判定条件(函数),不传会报错,对数组中的每一项运行给定条件,将满足条件的值放在一个数组中输出,产生新对象,返回一个新数组。

6.归并方法

        ①reduce(fn(),默认值)   归并就是合并,这里的意思是将数组里面的值合并为一个值。

                传入2个参数,第一个是归并的方式(函数)(比如相加,相乘);第二个是首次传入的默认值。

        var a = [1, 2, 23, 34, 5, 6, 78, 98, 900];
        // previousValue 是上一次调用回调返回的值,第一次执行时是提供的初始值
        // currentValue  是数组当前被出里的元素,第一次执行时是数组的度过值
        // index 当前元素在数组中的索引
        // array 调用 reduce 的数组
        var n = a.reduce(function(previousValue, currentValu, index, array) {
            return previousValue + currentValu;
        }, 0);
        console.log(a);
        console.log(n);

7.判断是否为数组(isArray())

        var b = [1, 2, 3, [], {}, null];
        console.log(Array.isArray(b)); //true

ES6新增

1.扩展运算符(...)   将数组转为逗号分隔的参数序列

        运用场景:

                ①Math.max()               

--------ES5比较大小---------
let arr = [1, 23, 4, 5, 6, 7];
console.log(Math.max.apply(null, arr));
--------ES6比较大小---------
let arr = [1, 23, 4, 5, 6, 7];
console.log(Math.max(...arr));

               ②复制数组

let arr = [1, 23, 4, 5, 6, 7];
let copy = [...arr];
arr[0] = 9;
console.log(copy);//[1, 23, 4, 5, 6, 7]

               ③合并数组

        let arr = [1, 23, 4, 5, 6, 7];
        let arr1 = [9, 8, 7, 6, 5, 4];
        let and = [...arr, ...arr1];
        console.log(and); //[1, 23, 4, 5, 6, 7, 9, 8, 7, 6, 5, 4]

               ④与解构数组一起使用

2.Array.from() 将具有lentgh属性的对象(字符串)转换为数组。

        [...arr]只能将具有iterator接口(遍历器接口)的对象转化为数组。

// ES5转数组
let arr1 = [].slice.call(arguments);
//ES6转数组
let arr2 = Array.from(arguments);

3.Array.of()  将传入的值转换为数组,默认值为空,弥补了在调用构造函数创建数组时,不能创建一个值的数组。

4.find(回调函数) 查找满足条件且首次出现的值,返回该值。

    findIndex(回调函数)   返回改值的下标。

5.fill(填充元素,开始位置,结束位置) 向数组中填充元素  返回原数组。

6.includes()  判断一个数组是否含有该值,返回Boolean值。

7.flat()  扁平化数组,将数组里面的数组拉伸为一层或者多层,默认和不传参为一层。  产生一个新数组。

8.keys(),values(),entries()。返回一个遍历器对象。再用for..of..循环出数组。

        keys(),返回下标。

        values(),返回数组成员。

        entries(),返回一个二维数组。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值