JavaScript中数组的操作

Array

JavaScript 的 Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。

描述

数组是一种类列表对象,它的原型中提供了遍历和修改元素的相关操作。JavaScript 数组的长度和元素类型都是非固定的。因为数组的长度可随时改变,并且其数据在内存中也可以不连续,所以 JavaScript 数组不一定是密集型的,这取决于它的使用方式。一般来说,数组的这些特性会给使用带来方便,但如果这些特性不适用于你的特定使用场景的话,可以考虑使用类型数组 TypedArray。

常见操作

创建数组

    // 创建一个空数组
    let arr=[]
    //创建一个附带数据的数组
    let arr1=['苹果14','华为meta50','iqoo11Pro']

通过索引访问数组元素

   let phone=arr1[2]
    console.log(phone);//iqoo11Pro
    //访问数组中最后一条最后数据
    let last =arr1[arr1.length-1]
    console.log(last);//iqoo11Pro

遍历数组

item:是遍历数组中的每一条数据
index:索引值

  arr1.forEach(function(item,index){
        console.log(item+'---'+index);
    })
    //苹果14---0
    //华为meta50---1
    //iqoo11Pro---2

添加元素到数组末尾

push:在数组末尾进行添加数据

      arr1.push("小米12","小米11")
      console.log(arr1);
     ['苹果14', '华为meta50', 'iqoo11Pro', '小米12', '小米11']

删除数组末尾的元素

pop:删除数组的最后一条数据,返回值就是删除的那个值

     let delLast=arr1.pop()
     console.log(delLast);//iqoo11Pro
     console.log(arr1);//['苹果14', '华为meta50']

添加元素到数组头部

unshift:在数组头部位置进行添加数据,可以同时添加多个

     arr1.unshift("苹果4",'苹果5')
     console.log(arr1);
     //['苹果4', '苹果5', '苹果14', '华为meta50''iqoo11Pro']

删除数组头部元素

shift:删除数组头部的那条数据。
这里要和unshift区分清楚,unshift是在头部添加元素
注意:返回值是删除的那条数据

     let x= arr1.shift()
     console.log(x);//苹果14
     console.log(arr1);//['华为meta50', 'iqoo11Pro']

找出某个元素在数组中的索引

indexOf:根据元素得到所在索引
注意:若数组中存在多条相同的数据,则只会查到第一个

    arr1.push('锤子手机')
     let index=arr1.indexOf('锤子手机')
     console.log(arr1);
     //['苹果14', '华为meta50', 'iqoo11Pro', '锤子手机']
     console.log(index);
     //3

通过索引删除某个元素

splice:可以对数组进行删除或者添加操作;可以有三个值或两个值
splice(开始索引,删除个数,添加数据)
splice(开始索引,删除个数)
注意,若三个值时,值二若为0,则在索引出添加值三
使用splice进行删除操作

   console.log(arr1);
    //['锤子手机', '苹果14', '华为meta50', 'iqoo11Pro']
    // 从索引1位置删除一条数据
    arr1.splice(1,1)
    console.log(arr1);
    //['锤子手机', '华为meta50', 'iqoo11Pro']

使用splice进行添加操作

    console.log(arr1)
    //['锤子手机', '苹果14', '华为meta50', 'iqoo11Pro']
    arr1.splice(1,0,'splice新增数据')
    console.log(arr1);
    //['锤子手机', 'splice新增数据', '苹果14', '华为meta50', 'iqoo11Pro']

复制一个数组

slice:从某个数组中返回选定的数据
值一:开始截取的索引位置
值二:结束截取的索引位置
注意:若没有值,则全部复制

   let copy=arr1.slice()
    console.log(copy);
    // ['锤子手机', '苹果14', '华为meta50', 'iqoo11Pro']

拼接两个数组

concat:把两个数组进行拼接,需要使用一个变量进行接收返回值

let con=arr.concat(arr1)
console.log(con);
// ['arr的数据', '锤子手机', '苹果14', '华为meta50', 'iqoo11Pro']

分割数组,转为字符串

join:通过指定符号或字母进行分割,得到一个字符串

let join=arr1.join(',')
console.log(join);//锤子手机,苹果14,华为meta50,iqoo11Pro
console.log(typeof join==='string');//true

数组排序

sort:可以对数组或字母进行排序
注意:若排序两位或以上的数时会出现异常

    let arr=[1,3,5,7,9,2,4,6,8]
    let px=arr.sort()
    console.log(px);
    //[1, 2, 3, 4, 5, 6, 7, 8, 9]

数组转为字符串

注意:使用tostring后,是返回一个字符串,需要一个变量进行接收,但原数组未改变

let S=arr1.toString()
console.log(S);
//锤子手机,苹果14,华为meta50,iqoo11Pro
console.log(arr1);
//['锤子手机', '苹果14', '华为meta50', 'iqoo11Pro']
console.log(typeof S=='string');

判断一个变量是否为一个数组

Array.isArray() 用于确定传递的值是否是一个 Array。

console.log(Array.isArray(arr1));//true

反转数组

reverse:对数组进行反转

    let arr=[1,2,3,4,5,6]
    let rev=  arr.reverse()
    console.log(rev);
    // [6, 5, 4, 3, 2, 1]