js数组的基本操作

133 阅读5分钟

大家好,刚开始写帖子,如果写的不对的地方,请大家多多指教哦!!!

概述

什么是数组? 数组是一种特殊的变量,它能够一次存放一个及以上的值。

描述:数组(arry)是按照一定顺序排列的一组值,每个值都拥有自己的编号,编号从0开始,整个数组用方括号来表示。

注意:

  1. 数组是按照一定顺序排列的一组值,顺序体现在下标,下标是从0开始。
  2. 数组元素:数组中的每一个值都称为数组元素,数组元素可以是任意类型。

常用的数组的方法

1.合并数组----concat()

描述:连接两个或多个数组,并返回已连接数组的副本。

语法:

    arr.concat(arr1,arr2,arr3,···)
2.向数组末尾新增元素----push()

描述:将新元素添加到数组的末尾,并返回新的数组的长度。

语法:

    arr.push(元素1,元素3,元素3...)
3.数组末尾删除元素----pop()

描述:删除数组的最后一个元素,并返回该元素。

语法:

    arr.pop()
4.向数组头部新增元素----unshift()

描述:将新元素添加到数组的开头,并返回新的长度。

语法:

    arr.unshift(元素1,元素3,元素3...)
5.数组头部删除元素----shift()

描述:删除数组的第一个元素,并返回该元素。

语法:

    arr.shift()
6.数组任意位置删除、新增、替换数组元素----splice()

描述:在数组的任意的位置删除,新增,替换数组的元素。

语法:

    arr.splice(起始索引,删除个数,新增元素)
7.查找数组中的元素----indexOf()

描述:在数组中搜索元素并返回其位置。注意:有就返回第一次出现该元素的索引,没有就返回-1。

语法:

    arr.indexOf(要查找的元素,开始查找的索引)
8.遍历数组,返回一个新数组----map()

描述:遍历当前数组,返回一个新的数组。

语法:

    arr.map((v,i)=>{
        return ...
    })
    
    // v:表示当前循环的每一项元素。
    // i:表示当前循环元素的索引值。
9.查找数组中只要有一个满足条件的元素----some()

描述:查找数组中只要有一个满足条件的元素,如有就返回为true,否则为false。

语法:

    arr.some(()=>{
       return 条件表达式;
    })
10.查找数组中所有满足条件的元素----every()

描述:查找数组中所有满足条件的元素,满足返回为true,不满足返回为false。

语法:

    arr.every(()=>{
       return 条件表达式;
    })
11.过滤满足条件的所有元素----filter()

描述:过滤满足条件的所有元素,返回满足条件的新的数组。

语法:

    arr.filter(()=>{
       return 条件表达式;
    })
12.查找数组中第一次满足条件的值----find()

描述:查找数组中第一次满足条件的值。如果有就返回当前的元素,没有则返回undefined。

语法:

    arr.find(()=>{
        return 条件表达式;
    })
13.查找数组中第一次满足条件的值的索引----findIndex()

描述:查找数组中第一次满足条件的值的索引。如有就返回当前值的索引,没有返回-1。

语法:

    arr.findIndex(()=>{
        return 条件表达式;
    })
14.将数组元素,以指定字符串进行拼接----join()

描述:将数组元素,以指定字符串进行拼接,返回字符串。

语法:

    arr.join("自定义连接字符")
    // 默认分隔符是逗号 (,)
15.查找数组元素----includes()

描述:查找数组中的元素,找到则返回true,没找到则返回false。

语法:

    arr.includes(要查找的字符,开始查找的索引)
16.反转数组----reversr()

描述:该方法是反转数组中元素的顺序。注意:该方法会改变原始数组。

语法:

    arr.reverse()
17.数组排序----sort()

描述:方法对数组的项目进行排序。排序顺序可以是按字母或数字,也可以是升序(向上)或降序(向下)。

语法:

    arr.sort((a,b)=>{
        return a-b; // 重大到小排列
        return b-a; // 重小到大排列
    })
18.多维数组转换为一维数组----flat()

描述:将多维数组转换为一维数组。

语法:

    arr.flat(n)  // n表示数组层数
19.截取数组元素----slice()

描述:截取开始索引到结束索引之间的元素,左闭右开(包含开始,不包含结束)。

语法:

    arr.slice(开始索引,结束索引)
20.遍历数组----forEach()

描述:遍历数组元素,操作原素组。

语法:

    arr.forEach((v,i)=>{
        js操作
    })
    
    // v:表示当前循环的每一项元素。
    // i:表示当前循环元素的索引值。
21.将数组转换为字符串----toString()

描述:将数组转换为字符串,并返回其结果。

语法:

    arr.toString();
22.reduce()

reduce()定义:

reduce()方法接受一个函数作为累加器,数组中的每一个值(从左到右)开始缩减,最终计算为一个值。

reduce()可以作为一个高阶函数,用于函数的compose(构成、组成)。

reduce()对于空数组不会执行回调函数。

语法:

    array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
参数描述
function(total, currentValue, index, arr)必须。用于执行每个数组元素的函数。
initiaValue可选。传递给函数的初始值。不传的时候会把第一项作为初始值,但是第一项不会执行reduce方法
参数描述
total必须,初始值,或者计算结束后的返回值
currentValue必须。当前元素
currentIndex可选。当前元素的索引
arr可选。当前元素所属的数组对象

例1:对数组里面的数字进行四舍五入相加到一起

    var numberArr = [1, 2, 3, 4];
    function Sum(total, num) {
        return total + Math.round(num);
    }
    function fn(item) {
        const res = numberArr.reduce(Sum, 0);
    }