• JavaScript数组的常用方法


    数组基本操作可以归纳为增,删,改和查,不过需要留意的是哪些方法会对原数组产生影响,哪些方法不会。

    接下来对数组的常用操作方法归纳总结一下:

    一.

    前三种是会对原数组产生影响的增添方法,最后一种不会对原数组产生影响。

    (1)push()

    1. <script>
    2. //push方法接收任意数量的参数,并将其添加到数组末尾
    3. //返回数组的最新长度
    4. let obj = []
    5. let newObj = obj.push('孙兴慜', 'C罗')
    6. console.log(newObj);//2
    7. </script>

    (2)unshift()

    1. <script>
    2. //unshift()在数组开头添加任意多个值
    3. //返回数组的最新长度
    4. let obj = []
    5. let newObj = obj.unshift('孙兴慜', 'C罗')
    6. console.log(newObj);//2
    7. </script>

    (3)splice()

    1. <script>
    2. //splice()传入三个参数,分别是开始位置,0(要删除的元素数量),插入的元素
    3. //返回空数组
    4. let obj = ['孙兴慜', 'C罗', '本田圭佑']
    5. let newObj = obj.splice(1, 0, '梅西')
    6. console.log(obj);//['孙兴慜','梅西', 'C罗','本田圭佑']
    7. console.log(newObj);//[]
    8. </script>

    (4)concat()

    1. <script>
    2. //concat()首先会创建一个当前元素的副本,然后再把它的参数添加到副本末尾
    3. //最后返回新构建的数组,不会影响原始数组
    4. let obj = ['孙兴慜', 'C罗', '本田圭佑']
    5. let newObj = obj.concat('朴智星', ['罗纳尔多', '郑大世'])
    6. console.log(obj);//['孙兴慜', 'C罗', '本田圭佑']
    7. console.log(newObj);//['孙兴慜', 'C罗', '本田圭佑','朴智星','罗纳尔多','郑大世']
    8. </script>

    二.

    下面三种都会影响原数组,最后一项不影响原数组。

    (1)pop()

    1. <script>
    2. //pop()方法用于删除数组的最后一项,同时减少数组的length
    3. //返回被删除的项
    4. let obj = ['德国队', '西班牙队']
    5. let newObj = obj.pop()
    6. console.log(newObj);//西班牙队
    7. console.log(obj.length);//1
    8. </script>

    (2)shift()

    1. <script>
    2. //shift()方法用于删除数组的第一项,同时减少数组的length
    3. //返回被删除的项
    4. let obj = ['德国队', '西班牙队']
    5. let newObj = obj.shift()//取得第一项
    6. console.log(newObj);//德国队
    7. console.log(obj.length);//1
    8. </script>

    (3)splice()

    1. <script>
    2. //splice()传入两个参数,分别是开始位置及删除的元素数量
    3. //返回包含删除元素的数组
    4. let obj = ['德国队', '西班牙队', '葡萄牙队']
    5. let newObj = obj.splice(0, 1)//删除第一项
    6. console.log(obj);//西班牙队 ,葡萄牙队
    7. console.log(newObj);//德国队
    8. </script>

    (4)slice()

    1. <script>
    2. //slice()用于创建一个包含原有数组中的一个或多个元素的数组
    3. //不会影响原始数组
    4. let obj1 = ['德国队', '西班牙队', '葡萄牙队', '加纳队', '比利时队']
    5. let obj2 = obj1.slice(1)
    6. let obj3 = obj1.slice(1, 4)
    7. console.log(obj1);//德国队,西班牙队 ,葡萄牙队,加纳队,比利时队
    8. console.log(obj2);//西班牙队 ,葡萄牙队,加纳队,比利时队
    9. console.log(obj3);//西班牙队 ,葡萄牙队,加纳队
    10. </script>

    三.

    (1)splice()

    1. <script>
    2. //splice()传入三个参数,分别是开始位置,要删除的元素数量 及插入的任意多个元素
    3. //返回删除元素的数组,对原数组产生影响
    4. let obj = ['德国队', '西班牙队', '葡萄牙队']
    5. let newObj = obj.splice(1, 1, '韩国队', '日本队')//插入两个值,删除一个元素
    6. console.log(obj);//德国队 ,韩国队,日本队,葡萄牙队
    7. console.log(newObj);//西班牙队,只有一个元素的数组
    8. </script>

    四.

    也就是查找元素,返回元素坐标或者元素值。

    (1)indexOf()

    1. <script>
    2. //返回要查找的元素在数组中的位置
    3. //如果没有找到则返回-1
    4. let arr = [1, 2, 3, 4, 5, 6, 7, 8, 4, 3, 2, 1]
    5. arr.indexOf(4)//3
    6. arr.indexOf(9)//-1
    7. </script>

    (2)includes()

    1. <script>
    2. //返回要查找的元素在数组中的位置
    3. //找到返回true,如果没有找到则返回false
    4. let arr = [1, 2, 3, 4, 5, 6, 7, 8, 4, 3, 2, 1]
    5. arr.includes(4)//true
    6. arr.indexOf(9)//false
    7. </script>

    (3)find()

    1. <script>
    2. //find() 返回第一个匹配的元素
    3. let stars = [
    4. {
    5. name: '孙兴慜',
    6. age: 30
    7. },
    8. {
    9. name: 'C罗',
    10. age: 37
    11. },
    12. {
    13. name: '朴宝剑',
    14. age: 30
    15. },
    16. ]
    17. let res = stars.find((element, index, array) => element.age < 31)
    18. console.log(res);//{ name: '孙兴慜', age: 30}
    19. </script>

    五.排序方法

    数组有两个方法可以用来对元素重新排序。

    (1)reverse()

    1. <script>
    2. let arr = [1, 2, 3, 4, 5]
    3. let res = arr.reverse()
    4. console.log(res);//5 4 3 2 1
    5. </script>

    (2)sort()

    1. <script>
    2. //sort()方法接收一个比较函数
    3. //用于判断哪个值应该排在前面
    4. function compare(a, b) {
    5. if (a < b) {
    6. return -1
    7. } else if (a > b) {
    8. return 1
    9. } else {
    10. return 0
    11. }
    12. }
    13. let arr = [0, 1, 5, 10, 15]
    14. let res = arr.sort(compare)
    15. console.log(res);//0, 1, 5, 10, 15
    16. </script>

    六.转换方法

    常见的转换方法有:

    join()

    1. <script>
    2. let arr = ['苹果', '小米', '三星']
    3. let res1 = arr.join(',')
    4. console.log(res1);//苹果,小米,三星
    5. let res2 = arr.join('||')
    6. console.log(res2);//苹果||小米||三星
    7. </script>

    七.迭代方法

    常用来迭代数组的方法如下(都不改变原数组),接下来一一举例说明:

    (1)some()

    1. <script>
    2. //some()对数组每一项都运行传入的函数
    3. //如果有一项返回true,那么这个方法返回true
    4. let arr = [1, 2, 3, 4, 5, 4, 3, 2, 1]
    5. let newArr = arr.some((item, index, arr) => item > 2)
    6. console.log(newArr);//true
    7. </script>

    (2)every()

    1. <script>
    2. //every()对数组每一项都运行传入的函数
    3. //如果有一项返回false,那么这个方法返回false
    4. let arr = [1, 2, 3, 4, 5, 4, 3, 2, 1]
    5. let newArr = arr.every((item, index, arr) => item > 2)
    6. console.log(newArr);//false
    7. </script>

    (3)forEach()

    1. <script>
    2. //forEach()对数组的每一项都运行传入的函数
    3. //没有返回值
    4. let arr = [1, 2, 3, 4, 5]
    5. arr.forEach((item, index, arr) => {
    6. console.log(item * 2);//2,4,6,8,10
    7. })
    8. </script>

    (4)map()

    1. <script>
    2. //map()对数组的每一项都运行传入的函数
    3. //返回由每次函数调用的结果构成的数组
    4. //也就是每一项执行完回调函数构成的数组
    5. let arr = [1, 2, 3, 4, 5]
    6. let res = arr.map((item, index, arr) => item * 2)
    7. console.log(res);//[2,4,6,8,10]
    8. </script>

    (5)filter()

    1. <script>
    2. //filter()对数组的每一项都运行传入的函数
    3. //函数返回true的项会组成数组之后返回
    4. let arr = [1, 2, 3, 4, 5]
    5. let res = arr.filter((item, index, arr) => item > 2)
    6. console.log(res);//[3, 4, 5]
    7. </script>

  • 相关阅读:
    spring.profiles.active和spring.profiles.include的使用及区别说明
    react中受控组件与非受控组件
    适合初学者的CNN数字图像识别项目:Digit Recognizer with CNN for beginner
    Ros noetic 机器人坐标记录运动路径和发布 实战教程(A)
    k8s中,“deployment”充当什么角色?有什么功能?
    SpringBoot2基础篇(二)—— 基础配置
    网络信息安全笔记—逻辑漏洞
    Windows GitBash解决Github添加密钥时提示Key is already in use的问题
    史上最全 JVM 性能调优:线程 + 子系统 + 类加载 + 内存分配 + 垃圾回收(内附最全学习笔记),不得不服,面试官也问不出毛病
    Havoc插件编写
  • 原文地址:https://blog.csdn.net/huihui_999/article/details/128157958