JS数组方法使用教程(一)

数组是什么

  • array的英文意思是有序的排列,以形成秩序。
  • 在编程语言,数组是一种数据类型。这种数据类型把同类型的数据存储在内存中的一块连续地址上。
  • 在JS中,数组同样也是一种数据结构。数组是存储在连续存储中的值的有序集合。与其他编程语言不同的是,JS数组可以存储不同类型的数据。(一次存储多个值的有序集合)
[1,2,3]
['苹果','香蕉','西瓜','草莓']
['张三' , 18 , '卖西瓜' , '爱游泳' ]

数组元素

  • 元素使用方括号包裹
  • 多个元素之间用英文逗号分隔

数组索引

  • 数组中的每一个元素都对应一个唯一有序数字,这个数字表示数组元素的位置,

数组的分类

空数组

  • 不包含如何元素的数组

密集数组

  • 数组元素和数组索引一 一对应。
  • 特点:密集数组的length属性可以准确的反映对应的数组元素
[1,2,3,4,5]

稀疏数组

  • 数组元素的分布和数组的索引不是一一对应。
  • 特点:数组的length属性不能准确的反映对应的数组元素
[,1, , ,2, 3 , ]//length:6  元素只有3

一维数组

  • 存储的都是初始值(没有数组,对象)
[1,2,3,4,5,6]
['苹果','香蕉','西瓜','草莓']

二维数组

  • 存储的是元素列表。
['张三' , 18 , false , ['卖西瓜' , '爱游泳' ] ]

多维数组

  • 存储的是元素列表的列表....
['张三' , 18 , false , ['卖西瓜' , '收草莓' ], ['爱玩游戏' , '爱游泳' ] ]

创建数组的方法

1.字面量法

[元素1,元素2,元素3]
[1,2,3,4,5,6,7]

2.构造函数法

  • 使用Array()构造函数创建数组
new Array(参数)
const arr1 = new Array()
console.log(arr1);
const arr2 = new Array(3)
console.log(arr2);// 数组里没有元素,长度为3 ,稀疏数组
console.log(arr2.length);//3
const arr3 = new Array('苹果','香蕉')
console.log(arr3); // ['苹果', '香蕉']
const arr4 = new Array(1,2,3,4)
console.log(arr4); //[1, 2, 3, 4]

3.扩展符( ... )创建数组

4.内置方法创建数组

  • String.split()
  • Array.from(伪数组)
  • Array.map()
  • Array.filter()

操作数组

查询数组长度

  • array.lengrth

用法1:查询元素最后一个元素

  • array.lengrth - 1

用法2:在数组最后添加元素

  • arr[arr.length] = 'a'

用法3:删除数组

let arr = [1,2,3]
console.log(arr.length = 1) // [ 1 ]

访问数组元素

索引法
语法: 数组名[ 索引 ]

修改数组元素

索引赋值法
语法: 数组名[ 索引 ] = 新值

添加数组元素

方法1:使用索引添加
数组名[数组长度] = 新值

方法2 :使用数组方法添加

  • array.push()
  • array.unshift()
  • array.splice() 通用方法:可删、加、改数组元素
  • array.concat():合并数组

删除数组元素

方法1:使用数组方法删除

  • array.pop()
  • array.shift()
  • array.splice()

方法2:delete操作符删除

delete 数组名[索引] //只删除元素,不删除索引位置。

let arr = [1,2,3,4,5]
delete arr[2]
console.log(arr);//[1, 2, 空, 4, 5]

遍历数组元素

  • for循环
  • for of 循环
  • for in循环
  • 数组迭代器法 forEach()

数组的特点

  • 数组是有索引的
  • 数组是有长度的
  • 比较数组是数组的地址比较
  • 复制数组是复制数组的地址

如何访问数组

如何遍历数组

array.length

Array.isArray()

定义
Array.isArray()方法用于检查是否是数字。

语法

Array.isArray(value)
  • value :要检测的值

返回值

  • true:如果是数组,返回true
  • false:如果不是数组,返回false

示例

var str = 'hello wolrd'
var str1 = [1,2,3]
console.log(Array.isArray(str)) //true
console.log(Array.isArray(str1)) //false

array.push()

定义
array.push()在数组末尾添加元素

语法

array.push(item1, item2, ..., itemX)
  • item1:要添加的元素
  • item2:一次可以添加多个元素,多个元素之间用逗号分隔。

返回值

  • 返回数组的新长度。

示例

var arr = [1,2,3]
arr.push(4) // 返回值为4
arr.push(5,6,7)// 返回值为7
console.log(var) //[1,2,3,4,5,6,7]

array.unshift()

定义
array.unshift()将元素添加到数组的开头。

语法

array.unshift(item1, item2, ..., itemX)
  • item1:要添加的元素
  • item2:一次可以添加多个元素,多个元素之间用逗号分隔。

返回值

  • 返回数组的新长度。

示例

var arr =[1,2,3]
arr.unshift(1) //4
console.log(arr)//[1,1,2,3]

array.pop()

定义
array.pop()删除数组的最后一个元素。

语法

array.pop()
  • 无参数
    返回值
  • 返回删除元素

示例

var arr=[1,2,3]
var arr2=arr.pop()
console.log(arr2) // 返回值3

array.shift()

定义
array.shift()删除数组的第一个元素。

语法

array.shift()

-无参数
返回值

  • 返回删除元素

示例

var arr=[1,2,3]
var arr2=arr.shift()
console.log(arr2) // 返回值1

array.reverse()

定义
array.reverse反转数组中元素的顺序

语法

array.reverse()

-无参数

返回值

  • 返回反转后的数组。

示例

 var arr = [1,2,3]
  arr.reverse()
  console.log(arr)//[3,2,1]

array.join()

定义
array.join将数组作为字符串返回

语法

array.join(separator)
  • separator:可选。要使用的分隔符。如果省略,元素用逗号分隔。

返回值

  • 返回字符串值,表示数组值,由指定的分隔符分隔。

示例

 var arr = [1,2,3]
 console.log(arr.join('')) //123

array.splice()

定义:用于修改数组(删,加,替换)

语法

splice(参数1,参数2,参数3)
splice(起始位置,删除元素的数量,新增元素)
splice(start)
splice(start, deleteCount)
splice(start, deleteCount, item1)
splice(start, deleteCount, item1, item2, itemN)
  • start:起始位置
  • deleteCount:整数,表示要移除的数组元素的个数。(可选)
  • item1:新增元素(可选)

返回值

  • 数组包含删除的元素
  • 空数组,没有删除任何元素

示例
填一个参数,它就把后面的全删除了

let arr1 = ['苹果','香蕉','西瓜','草莓']
        let arr2 = arr1.splice(1)
        console.log(arr1);//['苹果']
        console.log(arr2);// ['香蕉','西瓜','草莓']

填二个参数,删除位置后面的几个

let arr1 = ['苹果','香蕉','西瓜','草莓']
        let arr2 = arr1.splice(1,2)
        console.log(arr1);//['苹果','草莓']
        console.log(arr2);// ['香蕉','西瓜']

填三个参数,添加在哪个位置

let arr1 = ['苹果','香蕉','西瓜','草莓']
let arr2 = arr1.splice(2,0,'榴莲')
console.log(arr1);//['苹果','香蕉','榴莲','西瓜','草莓']
console.log(arr2);//[ ]

你可能感兴趣的:(JS数组方法使用教程(一))