js中数组方法总结

改变原数组的方法有:

栈方法

  • push:数组末尾追加任意数量的元素,返回修改后数组的长度
  • pop:数组末尾移除最后一项,返回移除的项

队列方法

  • unshift:数组前端添加任意个项并返回新数组的长度
  • shift:移除数组中的第一项并返回改该项

重排序方法

  • sort:默认情况按照升序排列数组
  • reserve:翻转数组

操作方法

  • splice:向数组中部插入项。删除-两个参数(起始位置和要删除的项数)、插入-三个参数(起始位置、0(要删除的项数)、要插入的项)、替换-三个参数(起始位置,要删除的项数,要插入的任意数量项数)

不改变原数组的方法有:

操作方法

  • concat:数组拼接,基于当前数组所有项创建一个新数组,添加到末尾
  • slice:数组截取,返回起始和结束位置之间的项但不包括结束位置的项

位置方法

  • indexOf:从数组的开头往后找,返回要查找项的位置。如果没找到则返回-1
  • lastIndexOf:从数组的末尾开始向前找

迭代方法

  • every:查询数组中的项是否全部满足条件,如果全部满足则返回true,否则false。类似于‘与或非’中的与
  • some:查询数组中的项是否满足条件,如果有一项满足条件则返回true。类似于‘与或非’中的或
  • filter:数组筛选,返回满足条件项组成的数组
  • forEach:没有返回值,类似于‘for’
  • map:返回函数调用结果组成的数组。如:数组中的每一项乘2

归并方法

  • reduce:从数组的第一项开始,逐个遍历到最后,返回一个最终返回的值。如:数组求和,数组累积。数组中找最大项
  • reduceRight:从数组的最后一项向前遍历
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Array</title>
</head>
<body>
    <h1>数组方法总结</h1>
    <h2>改变原数组的有:push pop unshift shift splice sort reverse </h2>
    <h2>不改变原数组的方法有 concat slice includes indecOf filter map reduce forEach join</h2>
    <script>
        let arr1=[1,2,3,4]
        // 数组的增删
        let arr0=arr1
        arr0.push(5)
        console.log(arr0) //[1,2,3,4,5]
        let arr_pop=arr0.pop()
        console.log(arr0) //[1,2,3,4]
        console.log(arr_pop) //5
        arr0.unshift(9)
        console.log(arr0) //[9,1,2,3,4]
        arr0.shift()
        console.log(arr0) //[1,2,3,4]
        arr0.splice(1,2)
        console.log(arr0) //[1,4]
        // 数组排序
        let arr2=[5,2,9,1,7]
        let arr_sort=arr2.sort()
        console.log(arr_sort) //[1,2,5,7,9]
        // 数组翻转
        let arr3=[4,8,6]
        let arr_res=arr3.reverse()
        console.log(arr_res) //[6,8,4]
        // splice删除
        let arr6=[1,2,3,4,5,6]
        let arr_s=arr6.splice(1,3)
        console.log(arr6) //[1,5,6]
        console.log(arr_s)//[2,3,4]
        // splice插入
        let arr_p=arr6.splice(2,0,9,"red")
        console.log(arr6)//[1, 5, 9, 'red', 6]
        console.log(arr_p)//[]
        // splice替换
        let arr_l=arr6.splice(1,2,"blue")
        console.log(arr6)//[1, 'blue', 'red', 6]
        console.log(arr_l)//[5,9]
        console.log('-----------------分割线------------------');
        // 数组拼接
        let arr4=[9,2,8]
        let arr5=[7,9,5,0]
        let arr_cat=arr5.concat(arr4)
        console.log(arr_cat) //[7, 9, 5, 0, 9, 2, 8]
        // 数组截取
        let arr_slice=arr5.slice(1,2)
        console.log(arr_slice) //[9]
        // 位置方法
        let arr_index=arr5.indexOf(9)
        console.log(arr_index)  //1
        let arr_index1=arr5.indexOf(3)
        console.log(arr_index1)  //-1
        // 迭代方法
        // every遍历数组直到找到不满足条件的元素或者遍历完数组
        // 检查数组中的元素是否均大于3
        let all=arr5.every(function(item){
            return item>3
        })
        console.log(all) //false
        // some遍历数组中是否大于3的元素
        let s=arr5.some(item=>item>3)
        console.log(s) //true
        // filter数组筛选
        // 返回一个所有值均大于3的数组
        let fil=arr4.filter(item=>item>3)
        console.log(fil)//[9,8]
        // forEach没有返回值,与for类似
        // 打印数组中的每一个元素
        arr4.forEach(item=>{
            console.log(item)
        })//9 2 8
        // map返回每次调用的结果组成的数组
        let double=arr4.map(function(currentValue){
            return currentValue*2
        })
        console.log(double)//[18,4,6]
        // 归并方法,数组求和-reduce
        let sum=arr4.reduce(function(prev,cur){
            return prev+cur
        })
        console.log(sum)//19
        // 累积
        let pruduct=arr4.reduce((prev,cur)=>prev*cur,1)
        console.log(pruduct) //144
        // 数组中的最大值
        let max=arr4.reduce((prev,cur)=>Math.max(prev,cur),arr4[0])
        console.log(max)//9
    </script>
</body>
</html>
posted @ 2024-07-06 12:20  齐嘉树  阅读(6)  评论(0编辑  收藏  举报