编辑
2023-03-22
JavaScript
0
请注意,本文编写于 535 天前,最后修改于 515 天前,其中某些信息可能已经过时。

目录

说明
构成
注意
语法
创建数组的方法
字面量创建
Array()构造函数创建
语法
说明
对数组的访问和操作
查找
通过索引查找
使用for循环遍历
增加
修改
删除
多维数组
数组的属性和方法
数组的属性
length属性
数组方法
toString()
作用
语法
语法示例
join()
说明
返回值
语法
slice()
说明
语法
参数
Eg
indexOf()
说明
语法
map()
说明
特点
语法
参数
示例
filter()
说明
语法
参数
Eg
concat()
说明
返回值
语法
forEach()
说明
特点
语法
some()
说明
特点
语法
includes()
说明
语法
push()
说明
语法
参数
unshift()
说明
语法
参数
pop()
说明
语法
shift()
说明
语法
splice()
说明
语法
参数
返回值
Eg
reverse()
说明
语法
返回值
sort()
说明
语法
补充方法
isArray()
说明
语法
reduce()
说明
语法

说明

数组对象是使用单独的变量名来存储一系列值的有序集合

构成

由中括号包裹多个同类数据且多个数据以逗号隔开

注意

JavaScript的数组可以包括任意数据类型(同一数组的不同元素可以是不同的类型 ),如任意类型的值,表达式、字符串等等

语法

javascript
arr=[value,value,value,value]

创建数组的方法

字面量创建

Array()构造函数创建

语法

new Array()

说明

  • 当参数为无时,返回一个空数组
  • 当参数为正整数时,表示返回的新数组的长度
  • 当参数为非正整数的值时,会报错
  • 当参数为单个非数值(字符串、布尔、对象),则返回的是一个包含改参数的数组
  • 多参数时,所有参数都是返回的新数组的成员

对数组的访问和操作

查找

通过索引查找

javascript
arr[index]

使用for循环遍历

javascript
var a = [1,2,3]; for (var i = 0;i < 3;i++) { console.log(a[i]) }

增加

索引和赋值实现,当索引大于数组长度时则会增加元素

javascript
arr[index] = newValue

修改

索引和赋值实现,当索引存在与数组长度内,此时由索引取值后赋值即可修改

javascript
arr[index] = newValue

删除

length属性实现,当设置的长度小于数组长度则会截断数组

javascript
var a = [1, 2, 3]; a.length = 2; console.log(a)

多维数组

数组中嵌套数组,称为多维数组,常见的有二维数组
Eg二维数组:

javascript
var arr=[ 1, 2, [ "hello", "world" ] ] //此时访问hello console.log(arr[2][0])

数组的属性和方法

数组的属性

length属性

获取数组长度
使用数组的length属性

javascript
arr.length

数组方法

toString()

作用

将其转为字符串,并且以逗号拼接

语法

javascript
array.toString()

语法示例

javascript
var a = [1,2,3]; var b = a.toString(); console.log(b+typeof(b)); /* 输出: 1,2,3string */

join()

说明

把数组中的所有元素转换一个字符串,如果不指定拼接符则默认使用逗号拼接

返回值

返回一个字符串。该字符串是通过把 arrayObject的每个元素转换为字符串,然后在这些字符串两个元素之间插入separator拼接符生成

语法

javascript
array.join(separator)

slice()

说明

提取数组的某个部分,并以新的字符串返回被提取的部分含头不含尾

语法

javascript
array.slice(start, end)
参数
参数说明
start规定从何处开始选取,若为负数则表示从原数组的倒数第几个元素开始提取,从右往左提取
end规定从何处结束选取,若此参数省略,则表示直接选取到数组结束;若此参数为负数,原数组中的倒数第几个元素结束抽取

Eg

javascript
var a = [1, 2, 3,4,5,6]; var c = a.slice(0,4); var c2=a.slice(-3,-1); console.log(c); console.log(c2); /* [ 1, 2, 3, 4 ] [ 4, 5 ] */

indexOf()

说明

查找数组内元素,查找到则返回对应索引,若没有查找到则返回-1

语法

javascript
array.indexOf(x,start)

x: 查找的字符串值
start:规定从何处开始查找

map()

说明

通过指定函数处理数组的每个元素,并返回处理后的数组(新数组的每个元素由调用原始数组中的每一个元素执行提供的函数得到)

特点

新数组个数和原数组一致
适用于对数组进行处理,且后续还要使用的场景
括号中必须使用函数作为参数

语法

javascript
array.map(function(currentValue,index,arr), thisValue)
参数

默认情况下也会传入三个函数参数
function(currentValue,index,arr):必须,函数,可以直接定义函数后调用函数名
currentValue: 必须 当前元素的值
index: 可选,当前元素的索引值
arr: 可选,当前元素属于数组对象
thisValue: 可选。对象作为该执行回调时使用,传递给函数,用作"this"的值。如果省略了thisValue,或者传入null、undefined,那么回调函数的this为全局对象。

示例

javascript
var a = [1, 2, 3, 4, 5]; function fn(i) { c = i*2; return c; }; var b = a.map(fn); console.log(b) /* 返回结果: [2,4,6,8,10] */

filter()

说明

检测数组元素,并返回符合条件所有元素的数组
括号中必须使用函数作为参数

语法

javascript
array.filter(function(currentValue,index,arr), thisValue)
参数

function: 必须。函数,数组中的每个元素都会执行这个函数
currentValue: 必须 当前元素的值
index: 可选,当前元素的索引值
arr: 可选,当前元素属于数组对象

Eg

javascript
var a = [1, 2, 3, 4, 5]; function fn(i) { return i>2; }; var b = a.filter(fn); console.log(b) /* 【3,4,5】 */

concat()

说明

用于连接两个或多个数组

返回值

返回被连接数组的一个副本

语法

javascript
arr1.concat(arr2)

forEach()

说明

调用数组的每个元素,并将元素传递给回调函数

特点

forEach() 对于空数组是不会执行回调函数的

语法

javascript
array.forEach(function(currentValue, index, arr), thisValue)

some()

说明

检测数组元素中是否有元素符合指定条件

特点

  • 如果有一个元素满足条件,则表达式返回true,剩余的元素不会再执行检测。
  • 如果没有满足条件的元素,则返回false
  • some() 不会对空数组进行检测
  • some() 不会改变原始数组

语法

array.some(function(currentValue,index,arr),thisValue)

includes()

说明

检测数组元素中是否含有指定的值,如果有则返回true,否则返回flase

语法

arr.includes(searchElement, fromIndex)

searchElement:要查找的元素
fromIndex:从何处开始查找


以上方法无法直接修改数组

push()

说明

向数组的末尾添加一个或更多元素,并返回新的长度

语法

javascript
array.push(item1, item2, ..., itemX)
参数

item: 必须,添加到数组中的元素

unshift()

说明

向数组的开头添加一个或更多元素,并返回新的长度

语法

javascript
array.unshift(item1,item2, ..., itemX)
参数

tem1,item2, ..., itemX 可选,向数组起始位置添加一个或者多个元素

pop()

说明

删除数组最后一个元素,并返回删除的元素

语法

javascript
array.pop()

shift()

说明

删除数组第一项,并返回删除的元素

语法

javascript
array.shift()

splice()

说明

添加或删除数组中的元素

语法

javascript
array.splice(index,howmany,item1,.....,itemX)
参数

index:必需,且为数字规定从何处添加/删除元素
howmany:必需,且为数字,规定应该删除多少元素
item1...itemn:要添加到数组的新元素

返回值

若从原数组中删除了元素,返回的时被删除元素组成的数组

Eg
javascript
var a = [1, 2, 3, 4, 5]; var b = a.splice(1,2); console.log(b); /* 输出结果 [2,3] */

reverse()

说明

反转数组的元素顺序(倒序排列)

语法

javascript
array.reverse()
返回值

倒序排列后的数组

sort()

说明

对数组的元素进行排序,按照unicode编码排序

语法

javascript
array.sort(sortfunction) /* sortfunction:(a,b)=>{a-b}, 该函数接受两个默认参数,依次为:第一个用于比较的元素、第二个用于比较的元素 */
compareFn(a, b) 返回值排序顺序
> 0a 在 b 后
< 0a 在 b 前
=== 0保持 a 和 b 的顺序

常用升序排序,数组内不包含NaN、Infinite (a,b)=>{a-b}


补充方法


isArray()

说明

用于判断传入的值是否为数组,是则返回true,否则返回false

语法

Array.isArray(obj)

reduce()

说明

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

语法

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

function:必需。用于执行每个数组元素的函数

  • total 必需。初始值,或者计算结束后的返回值。
  • currentValue 必需。当前元素
  • currentIndex 可选。当前元素的索引
  • arr 可选。当前元素所属的数组对象

initialValue: 可选。传递给函数的初始值

本文作者:RKLS

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!