数组常用方法

Array.isArray(对象)

判断这个对象是不是一个数组

.concat(数组)

返回一个拼接的新数组

.push(值)

在原数组的最后面添加上这个值,返回值是新数组的长度

.unshift(值)

在原数组的最前面添加上这个值,返回值是新数组的长度

.pop

将原数组最后一个值弹出,返回值是弹出的这个值

.shift

将原数组第一个值弹出,返回值是弹出的这个值。

.reverse

将原数组逆序,返回值是经过排序之后的数组(是数组本身)

.sort

将原来数组按一定顺序排列,不稳定,可以在这个方法中传入一个比较函数。返回值是经过排序之后的数组。

.slice(开始的索引,结束的索引)

将原来数组从开始的索引到结束的索引的中间那一段数组内容截取出来,放在新数组中,这个操作本身不影响原来的数组。

.splice

splice方法传入的参数个数取决于使用这方法所要达到的效果,具体而言,就是:

  1. 删除:传入两个参数,起始位置,删除的个数
  2. 插入:传入三个参数,插入位置,0(表示不删除任何元素),要插入的元素
  3. 替换:传入三个参数,替换位置,要替换的元素的个数,要替换的元素

注意

splice方法对于数组的操作会影响原来数组

.find

接收一个方法作为参数,方法内部会返回一个条件,find会遍历数组的所有元素,符合这个条件的元素会被返回,如果遍历完整个数组都没有符合条件的元素,会返回undefined

    var arr =[10,20,30];
    arr.find((item)=>{
        return item ==20;
    })
    这个函数会返回数组中值是20

.findIndex

作用和find方法类似,但是不同的是,这个方法返回的是数组中符合条件的元素在数组中的索引。

.join(拼接符)

返回一个将数组中所有元素使用拼接符拼接起来的字符串

every,filter,forEach,map,some

这几个方法都会遍历整个数组,但是,就其作用而言,却不尽相同,具体而言:

  1. every:接收一个函数作为参数,这个函数的第一个参数是元素的值,第二个参数是元素的索引,every会遍历整个数组,只有当数组中的每一个元素都满足参数函数的条件时,才会返回true
  2. some:作用和every相似,但不需要数组中每一个元素都满足条件,只要存在一个元素满足这个条件就返回true。
  3. filter:根据传入的参数函数对数组中每一个元素进行过滤判断,返回的值是所有满足条件的元素组成的新数组
  4. forEach:对数组中每一个元素遍历执行参数函数中的操作。没有返回值
  5. map:数组中每一个元素都要执行这个函数,并将执行后的结果放在一个新数组中返回。

上述所有遍历数组的方法均不会改变原来数组中元素的值。

tips:如何中断一个forEach循环
forEach一般是无法通过return或者是break进行中断的,在这里,介绍一个通过try/catch的方法进行中断。具体代码示例如下:

    var arr = [1,2,3,4,5];
    //我们的目的是使用forEach遍历数组,在遇到2的时候中断。
    try{
        arr.forEach(item=>{
            if(item === 2){
                console.log('遇到2了,可以中断吗?');
                foreach.break = new Error('Stop');
            }else{
                console.log(item);
            }
        })
    }catch(e){
        if(e.message === 'foreach is not defined'){
            console.log('中断成功');
        }else{
            throw e;
        }
    }

注意:遇到这种情况,也可以考虑使用数组的some方法或者是every方法。


  转载请注明: TomoFur 数组常用方法

 上一篇
TCP协议 TCP协议
TCP报文的若干首部关键字段确认ACK:仅当ACK=1时确认号字段才有效,当ACK=0时,确认号无效。TCP规定,在连接建立之后所有传送的报文字段都必须要把ACK置为1 同步SYN:在连接建立时用来同步序号,当SYN=1而ACK=0时,表明
2019-06-05
下一篇 
浏览器对象模型(BOM) 浏览器对象模型(BOM)
BOM提供了很多对象,用于访问浏览器的功能。 窗口位置IE,Safari,Opera和Chrome使用screenLeft和screenTop分别用来表示浏览器窗口相对电脑屏幕的左边和上边的距离。而在FireFox中。使用的是screenX
2019-05-30
  目录