JavaScript基础之内置对象——Array数组

内置对象Array数组对象,为我们提供了一些常用的方法,可以对数组进行一些常规操作。

数组中的常用方法

检测是否为数组

a.  instanceof  :标识符

arr instanceof Array   

              返回fales  arr不是数组对象

              返回true   arr是数组对象

b. Array.isArray(参数) 方法

              返回fales  arr不是数组对象

              返回true   arr是数组对象

        var obj = {};
        console.log(obj instanceof Array);
        console.log(Array.isArray(obj));

 

追加数组元素

push(要添加的元素) :在数组的末尾进行追加,可以添加一个或多个元素   返回值是增加元素后的新数组

unshift(要添加的元素):在数组的开头添加元素,可以添加一个或多个元素   返回值是增加元素后的新数组

删除数组元素

pop():删除数组末尾的元素,一次只删除一个元素,没有参数,直接删除  返回值是删除后的新数组

shift():删除数组开头的元素,一次只删除一个元素,没有参数,直接删除  返回值是删除后的新数组

        var arr = [2, 4, 5, 22, 33, 10, 23];

        console.log(arr);
        // 对象:长度为2  但是数组元素为空
        // 使用对象创建数组,一个参数代表数组长度,多个参数代表数组中的元素
        var arr1 = new Array(2);
        // 长度为2,但是数组元素为2,3
        var arr2 = new Array(2, 3);


        // 2.添加、删除数组元素
        // 添加:push(要添加的数组元素)  在元素的末尾添加一个或多个元素 返回值是:变化后的数组
        arr.push('pink', 10);
        console.log(arr);
        // unshift(要添加的数组元素)  在元素的开头添加添加一个或多个元素 返回值是:变化后的数组
        arr.unshift('red', 25);
        console.log(arr);

        // 删除:pop() 删除数组中末尾的一个元素,一次只能删除一个 没有参数 返回值是:变化后的数组
        arr.pop();
        console.log(arr);
        // shift() 删除数组中开头的一个元素 无参数  返回值是:变化后的数组
        arr.shift();
        console.log(arr);

输出结果:

判断数组中是否含有该元素

arr.indexOf(ele)     

           返回值 : -1   表示arr中没有ele元素

                             num   ele元素的索引号

           参数:ele 要查询的元素

    var arr = [2, 6, 7, 9, 2, 3, 10, 25, 15, 3, 7];
    console.log(arr.indexOf(11));

此方法可以用作数组去重

             思路:新数组用来放置 去重后的元素

             遍历旧数组,用旧数组中的元素去查找新数组的元素,如果新数组中没有,把当前元素追加到新数组中

             如果已经存在则不追加。

             元素是否存在于数组中 用indexOf() 判断  返回 -1 说明没有该元素

             核心算法:新数组的indexOf() = -1 就一直往新数组中追加元素

数组去重: 

        var arr = [2, 6, 7, 9, 2, 3, 10, 25, 15, 3, 7];
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            // 判断旧数组元素是否存在新数组中,== -1 不存在时 ,则追加到新数组中
            if (newArr.indexOf(arr[i]) == -1) {
                newArr.push(arr[i]); // 追加
            }
        }
        console.log(arr);

        console.log(newArr);

输出的结果是这样的:

数组分隔符

就是数组元素输出时,以什么符合分隔。

// join(['符号']) 方法是数组转字符串,默认以,分隔  [] 代表可选部分 可有也可没有
        var arr = [2, 6, 7, 9, 2, 3, 10];
        console.log(arr.join());
        console.log(arr.join('-'));
        console.log(arr.join(' & '));

更新数组splice方法

         splice(start[,deleteCount[,items[,items1[,items2........]]) 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,

         并以数组形式返回被修改的内容。此方法会改变原数组

 

         参数:

         start: 指定修改的位置(从0开始)  可以为负值  从数组的倒数第几位

         deleteCount = 0: 原地添加新的元素来修改数组,并以数组形式返回被修改的内容。

         deleteCount:整数 表示要移除元素的个数  可选的

         items........: 要添加进数组的元素, 从start 位置开始。 如果不指定, 则 splice() 将只删除数组元素

         方法的返回值:

         返回的是被删除元素的数组

 

splice方法主要就是更新数组。删除、替换或添加数组元素

var months = ['Jan', 'March', 'April', 'June'];
        // 添加元素
        // months.splice(0, 0, 'Feb'); // Jane(索引为0 = start) 被替换成Feb 因为 deleteCount是0 没有要删除的元素 添加元素Feb
        months.splice(1, 0, 'Feb'); // March(索引为1 =  start) 被替换成Feb 因为 deleteCount是0 没有要删除的元素
        console.log(months);
        // 删除并替换元素  此时moths = ["Feb", "Jan", "March", "April", "June"];
        months.splice(4, 1, 'May'); // 把June删除,换成May
        console.log(months); // 输出:["Jan", "Feb", "March", "April", "May"];
        // 删除不替换  此时 months = ["Jan", "Feb", "March", "April", "May"];

        // console.log(months.splice(1, 1)); // 输出 含Feb 长度为1的数组
        months.splice(1, 1);
        console.log(months); // 输出:["Jan", "March", "April", "May"];

        months.splice(2); // 从第2位开始删除所有元素
        console.log(months);

输出结果:

slice方法

          arr.slice([begin[, end]])   slice 不会修改原数组,只会返回一个浅复制了原数组中的元素的一个新数组。

        // 参数   取区间【begin,end)  就是取不到end的值,可以取到begin的值

        // begin 可选

        // 提取起始处的索引( 从 0 开始), 从该索引开始提取原数组元素。

        // 如果该参数为负数, 则表示从原数组中的倒数第几个元素开始提取, slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素( 包含最后一个元素)。

        // 如果省略 begin, 则 slice 从索引 0 开始。

        // 如果 begin 大于原数组的长度, 则会返回空数组。

        // end 可选

        // 提取终止处的索引( 从 0 开始), 在该索引处结束提取原数组元素。 slice 会提取原数组中索引从 begin 到 end 的所有元素( 包含 begin, 但不包含 end)。

        // slice(1, 4) 会提取原数组中从第二个元素开始一直到第四个元素的所有元素( 索引为 1, 2, 3 的元素)。

        // 如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 slice(-2, -1) 表示抽取了原数组中的倒数第二个元素到最后一个元素( 不包含最后一个元素, 也就是只有倒数第二个元素)。

        // 如果 end 被省略, 则 slice 会一直提取到原数组末尾。

        // 如果 end 大于数组的长度, slice 也会一直提取到原数组末尾。

举例: 

        var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
        var citrus = fruits.slice(1, 3);
        // 输出 ['Orange', 'Lemon']
        console.log(citrus);
        var citrus2 = fruits.slice();
        console.log(citrus2);

结果:

 

总结

对于方法的学习

总结三部曲:

a.  方法是做什么的——功能

b. 方法参数是什么——传参

c. 方法的返回值是什么——返回值

 

还有很多方法需要学习,主要是先学习一些常用方法,其他的方法在需要的时候,去MDN查文档、API,讲的很仔细,对着文档看看,练练例子,最后再自己实现一个小例子,方法基本就掌握的差不多了。

最重要的是要有自学的能力和自觉性,要会用各种资源。

加油加油!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值