数组的有关方法

遍历数组的方法

1. for循环进行遍历

for(var i=0;i<=数组名.length;i++){   //尽量使用let进行i的声明,涉及块级作用域的问题

 console.log(i)

}

2. for...in遍历数组

for(let key in 数组名){

 console.log(key)   //使用for..in进行遍历时的 key时数组的每一项对应的下标

}

3. forEach() 进行数组的遍历 

数组名.forEach((item,index,arr)=>{  //直接使用箭头函数,forEach()中的参数是函数类型的,                                                              //数组有几个元素,函数执行几次

console.log(item)  //数组的每一项

console.log(index) //数组的每一项对应的下标

console.log(arr)  //当前遍历的数组

})

4. map() 进行数组的遍历

    map()和forEach()的区别:map()存在返回值,且返回的是一个数组,数组中每一项的值为                                                             undefined;

let result=数组名.map((item,index)=>{

     console.log(item);

     console.log(index);

})

console.log(result) //result是一个数组,数组中的每一个元素都是undefined

 5. every() 进行数组的遍历

     应用场景: 购物车的反选,以及全选的勾选与否的实现

     特点:当所有的数组元素都满足条件时,返回的是true; 只要有一个不满足条件就返回false

var result=数组名.every(item=>{

   return 条件表达式 

})
console.log(result)  //此时的result 是一个 布尔值;接收的是 条件表达式运行的结果

 

 6. some() 进行数组的遍历

     应用场景: 购物车的反选,以及全选的勾选与否的实现

     特点:只要有一个满足条件就返回true;当所有的数组元素都不满足条件时,返回的是false

var result=数组名.some(item=>{

   return 条件表达式 

})
console.log(result)  //此时的result 是一个 布尔值;接收的是 条件表达式运行的结果


数组使用的方法 

添加数组元素

数组名.push() 尾部添加元素,原数组被改变,返回的是新数组的长度

数组名.unshift() 头部添加元素,原数组被改变,返回的是新数组的长度

数组名[下标]='新增的内容' //直接进行添加

        var arr = [1, 2, 3, 4, 5, 6]
        //尾部添加
        console.log(arr.push(7)); //打印的是新数组的长度
        console.log(arr); //打印的是 新数组
        //头部添加
        console.log(arr.unshift(0));
        console.log(arr);
        //直接进行添加
        arr[7] = 8
        console.log(arr);

 删除数组元素

数组名.pop() 尾部删除元素,原数组被改变,返回的是被删除的那个元素

数组名.shift() 头部删除元素,原数组被改变,返回的是被删除的那个元素

        var arr=[1,2,3,4,5,6]
        //头部删除
        console.log(arr.shift()); //1 返回的是被删除的那个元素
        //尾部删除
        console.log(arr.pop()); //6

 数组拼接

数组名.concat()  连接两个或多个数组,对原数组影响,返回的是一个新数组 

 var arr = [1, 2, 3, 4, 5, 6]

 var arr2 = [999]

 console.log(arr.concat(arr2)); // [1, 2, 3, 4, 5, 6, 999]

返回的是拼接后的数组

 slice()

数组名.slice(begin,end) 截取数组 包头不包尾 begin,end都为下标;

                                        对原数组影响,返回的被截取的部分

slice()方法可以接受一或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下, slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。

 

出现负数时,将负数加上数组长度的值 来替换该位置的数
        var arr = [1, 2, 3, 4, 5, 6]
        console.log(arr.slice(1)); //[2, 3, 4, 5, 6]
        console.log(arr.slice(1, -2)); //[2, 3, 4]  
        console.log(arr.slice(-4, -1)); //[3, 4, 5]

splice()

数组名.splice(begin,length) 删除数组元素,也可以添加,替换数组元素 length代表要截取的个数,对原数组影响

删除:指定 2 个参数:要删除的第一项的位置和要删除的项数。 arr.splice( 1 , 3  )

插入:可以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、 0(要删除的项数)和要插入的项  arr.splice(  2,0,4,6  )

替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。

  arr.splice(1,1,2,4)

        var arr = [1, 3, 5, 7, 9, 11];
        //删除 //返回值是,截取的部分
        var arrRemoved = arr.splice(0, 2);
        console.log(arr);                //[5, 7, 9, 11]
        console.log(arrRemoved);                     //[1, 3]
        //添加 ///返回值是 被添加的位置         
        var arrRemoved2 = arr.splice(2, 0, 4, 6);
        console.log(arr);                // [5, 7, 4, 6, 9, 11]
        console.log(arrRemoved2);                    // []
        //替换 //返回值是 被替换的部分         
        var arrRemoved3 = arr.splice(1, 1, 2, 4);
        console.log(arr);                // [5, 2, 4, 4, 6, 9, 11]
        console.log(arrRemoved3);           //[7]

 检测数组的方法

1. instanceof()  返回值为布尔值

2. isArray()        返回值为布尔值

eg:数组名.isArray()


数组排序 

 sort方法   排序

​          数组名.sort(function(a,b){

​                     return a-b    升序

​                     return  b-a   降序

​              })


数组筛选 

filter():“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。

              返回值是 过滤后的数组


数组去重 

set()代表的是一个*不含有重复元素*的**集合**,set本身的含义是集合的意思

   var 旧数组名=[1,2,1,5,6,2,3,8,9,2,9];
    var set=new Set(旧数组名)   //前面的set只是一个变量名
              注意:console.log(set)得到的是一个集合,且长度的属性为size,不是length
    var 新数组名 =Array.from(set)
    console.log(新数组名)

数组转换

字符串转换为数组  split("分隔符")

数组转换成字符串   join(" "),括号里面写字符串  ("要加引号"), 规定个连接字符,默认的是逗号(  ,)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值