JavaScript数组总结

398 阅读3分钟

最近看了很多东西,数组就是其中之一,其实就是因为被面试官问到怀疑人生,所以花了很大功夫补足知识。Array就是其中之一,后面的东西也会慢慢从本子上迁移到这里。

js数组有很多的方法,便于我们操作,以下一一介绍:

  1. filter()

    该方法主要用于过滤数组,可以传入一个方法来筛选合适值,会返回一个新数组。

    let array = [1,2,3,4,5,6];
    let filterArray = array.filter((arr)=>{
        return arr === 3;
    });
    console.log(array,filterArray)
    
    //结果是[1,2,3,4,5,6] [3]
    
  2. every()

    该方法主要用于判断数组中每一项是否都满足条件,只有所有项都满足条件才会返回true,否则返回false。

    let array = [1,2,3,4,5,6];
    let everyArray = array.every((arr)=>{
        return arr % 2 === 0;
    });
    console.log(everyArray)
    
    //结果是false
    
  3. some()

    该方法主要用于判断数组中是否存在满足条件的项,只要有满足条件的项都就会返回true,否则返回false。

    let array = [1,2,3,4,5,6];
    let someArray = array.some((arr)=>{
        return arr % 2 === 0;
    });
    console.log(everyArray)
    
    //结果是true
    
  4. reduce()/reduceRight()

    两个方法都会迭代数组中的所有项,返回一个最终值,不同的是reduce()是从数组中的第一项开始迭代,reduceRight()是从最后一项开始迭代,方法可以用于求和。

    prev:它是上一次调用回调时返回的结果,每次调用的结果都会给prev

    cur:当前的元素

    index:当前的索引

    arr:循环的数组

    let array = [1,2,3,4,5,6];
    let reduceArray = array.reduce((prev,cur,index,arr)=>{
        return prev+cur
    });
    console.log(reduceArray)
    
    //结果是21
    
  5. map()

    遍历数组,给数组每一个值做指定运算,最后会返回一个新数组。

    let array = [1,2,3,4,5,6];
    let mapArray = array.map((arr)=>{
        return arr * 2;
    });
    console.log(mapArray)
    
    //结果是[ 2, 4, 6, 8, 10, 12 ]
    
  6. forEach()

    循环数组,作用类似for循环

    let array = [1,2,3,4,5,6];
    array.forEach(arr=>{
        console.log(arr);
    });
    
    //结果是 1,2,3,4,5,6
    
  7. indexOf( str, index )/lastIndexOf()

    indexOf( value,index)查找元素value在数组中的位置,index是初始位置,不写的话默认从头开始。

    lastIndexOf(str, start) 方法可返回一个指定的字符串值最后出现的位置,如果指定第二个参数 start,则在一个字符串中的指定位置从后向前搜索。

  8. splice()

    可以实现插入、删除、替换,很有用。

  9. slice(start,end)

    从原数组中指定下标到结束下标中的项组或者组成新的数组,返回的数组包括start元素,不包括end元素。

    let array = [1,2,3,4,5,6];
    let sliceArray = array.slice(2,4);
    console.log(sliceArray);
    
    //结果是 [ 3, 4 ]
    
  10. concat()

    连接两个数组,将两个数组合成一个数组,不改变原来数组。

    let array1 = [1,2,3,4,5,6];
    let array2 = [1,2,3,4,5,6];
    let concatArray = array1.concat(array2)
    console.log(concatArray);
    
    //结果是 [ 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6 ]
    
  11. reverse()

    翻转数组顺序,会改变原来数组。

    let array = [1,2,3,4,5,6];
    let reverseArray = array.reverse()
    console.log(reverseArray);
    
    //结果是 [ 6, 5, 4, 3, 2, 1 ]
    
  12. sort()

    排序功能

    let array = [8,2,7,0,5,6];
    array.sort((a,b)=>{
        if(a>b){
            return a;
        }
    })
    console.log(array);
    
    //结果是 [ 0, 2, 5, 6, 7, 8 ]
    
  13. shift()/unshift()

    shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

    unshift()方法用于向数组的第一位插入一个值,会改变数组长度。

    let array = [8,2,7,0,5,6];
    array.shift(8)
    console.log(array);
    
    //结果是 [ 2, 7, 0, 5, 6 ]
    
    let array = [8,2,7,0,5,6];
    array.unshift(9)
    console.log(array);
    
    //结果是 [ 9, 8, 2, 7, 0, 5, 6 ]
    
  14. push()/pop()

    一个添加一个删除,不多说了....

  15. join()

    该方法可以将数组生成一个字符串,原数组保持不变。可以添加字符串分割方式,扩展下字符串变数组可以用split()方法。

    let array = [8,2,7,0,5,6];
    let joinArray = array.join(',');
    console.log(array,joinArray);
    
    //结果是 “827056”
    

先整理这么多,后面会在补充

Time is fair, because it gives everyone 24 hours.