Js数组集合

前面的话

js数组中的方法有很多,面试也经常考,小柒这里总结一下js数组中的方法。

JS数组

1、 数组的栈方法

  • push()方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回新数组的长度
  • pop()方法移除末尾最后一项,减少数组的length值,然后返回移除的项

2、数组的队列方法

  • shift(),能够移除数组的第一项并返回该项,同时数组长度减一
  • unshift(),在数组前添加任意项,并返回新数组的长度

3、重排序方法

  • reverse()会反转数组项的顺序
  • sort() 方法会调用每个数组项的toString()方法,然后比较得到的字符串,以确定如何排序。即使数组中的每一项都是数值,也是比较的字符串。

4、操作方法

  • concat() 可以连接两个数组,并返回连接后的新数组。(不改变原数组

  • slice(start, end) 可以提取数组中从start到end(不包括end)的某个部分,返回被提取的新数组。 如果只有一个参数,则新数组是从这个位置到末尾;如果是负数,则从尾部开始计算。(不改变原数组

  • splice(index,howmany, item1,…,itemX) 可以向数组中添加、删除元素, 返回被删除的项构成的数组。前两个参数必选,后面的参数可选。(改变原数组)

    var arr = ['x','i','a','o','q','i'];
    console.log(arr.slice(2,4));// ['a','o']
    console.log(arr);// ['x','i','a','o','q','i']
    console.log(arr.splice(2,2));// 从第二位开始,删除2个元素
    console.log(arr);//  ["x", "i", "q", "i"]
    console.log(arr.splice(2,0,"3",'4'));// []  从第二位开始,删除0位,添加两位
    console.log(arr);// ["x", "i", "3", "4", "q", "i"]
    

5、位置方法

  • indexOf() 和lastIndexOf() 这两个方法采用严格的相等来判断,判断数组元素出现的位置.
    其中,indexOf()方法从数组的开头(位 置 0)开始向后查找,lastIndexOf()方法则从数组的末尾开始向前查找。
    var arr = ['x','i','a','o','q','i'];
    console.log(arr.indexOf('x'));// 0
    console.log(arr.lastIndexOf('i'))// 5
    

6、迭代方法

  • filter():对数组中的每一项运行给定函数,返回每个函数为true的项组成的数组

    语法: array.filter(function(currentValue,index,arr), thisValue)

    // 返回数组 ages 中所有元素都大于 18 的元素:
    var ages = [32, 33, 16, 40];
    function checkAdult(age) {
        return age >= 18;
    }	
    function myFunction() {
        document.getElementById("demo").innerHTML = ages.filter(checkAdult);
    }
    // 输出结果为:
    // [32,33,40]
    
  • forEach(): 对数组中的每一项运行给定的函数。这个方法没有返回值

    语法:array.forEach(function(currentValue, index, arr), thisValue)

  • map();对数组的每一项运行给定函数,返回每次函数调用的结果组成的数组。不对空数组检测,不改变原数组

    语法:array.map(function(currentValue,index,arr), thisValue)

    // 返回一个数组,数组中元素为原始数组的平方根:
    var numbers =
     [4, 9, 16, 25];
    console.log(numbers.map(Math.sqrt));
    // [2,3,4,5]
    
  • every() :对数组的每一项运行给定函数,如果该函数每一项都返回true,则返回true。不对空数组检测,不改变原数组

    语法:array.every(function(currentValue,index,arr), thisValue)

    // 检测数组 ages 的所有元素是否都大于等于 18 :
    
    var ages = [32, 33, 16, 40];
    
    function checkAdult(age) {
        return age >= 18;
    }
    
    function myFunction() {
        document.getElementById("demo").innerHTML = ages.every(checkAdult);
    }
    // 输出结果为:	
    // false
    
  • some() : 对数组中的每一项运行给定的函数,若有元素满足条件就返回true。(不对空数组检测,不改变原数组

    语法:array.some(function(currentValue,index,arr), thisValue)

    // 检测数组 ages 的所有元素是否存在大于等于 18 :
    var ages = [3, 10, 18, 20];
    
    function checkAdult(age) {
        return age >= 18;
    }
    
    function myFunction() {
        document.getElementById("demo").innerHTML = ages.some(checkAdult);
    }
    
    // 输出结果
    // true
    

7、归并方法

  • reduce()与reduceRight() 会迭代数组中的所有项,然后构建一个最终返回的值。reduce从第一项遍历到最后一项,reduceRight()从数组的最后一项开始遍历。

    语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
    在这里插入图片描述

发布了238 篇原创文章 · 获赞 175 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_41257129/article/details/104147687
今日推荐