JS中的数组就是一个有序列表的集合,用于存放多个值。
特点:
- 每一项都可以存放任意类型的数据
- 数组大小可以动态调整
- 数组的length特性:可读可写。可以通过设置length的值从数组末尾移除或添加新的项
数组的创建
首先来了解数组的创建:
- 使用数组字面量创建
- 使用Array构造函数
字面量创建:
用一对 [] 包裹起来,里面是数组里面的元素,元素之间用" , " 隔开
可以通过数组下标获取对应数据,也可以指定在任意索引位置添加一个数据,用length获取数组长度。
构造函数创建
// 构造函数的形式创建一个数组
// 括号里如果是一个number类型的整数 则代表数组长度
// var arr2 = new Array(length)
// 如果是number类型的小数,则报错。
var arr2 = new Array(7);
var ages = new Array("2.4"); // ERROR
// 两个参数或者多个参数,当做数组元素放进去
var names = new Array('doggy','cuitee')
//创建一个数组,数组中的元素使用实参初始化
数组访问
访问数组元素
数组变量名[索引]
//如果索引小于数组的长度,返回对应项的值
var arr = ["piggy","doggy","kitty"];
arr[0] ; //访问数组中第一个元素,返回值为piggy
//如果索引大于等于数组的长度,返回undefined
var arr = ["piggy","doggy","kitty"];
arr[5] ; //undefined
//如果给索引大于等于数组的长度的位置设置了值,
// 数组自动增加到该索引值加1的长度
var arr = ["piggy","doggy","kitty"];
arr[3] = 'zzy'; //添加元素,数组长度变为4
- [index] 直接访问,索引可以超过索引范围,只不过访问的值为undefined
- length-1=Max(index)
- length+N 或 length-N 开辟新的内存空间 或 数组元素的删除
length-1=Max(index),索引值为length-1 的就是数组中最后一个元素
// length+N length-N 并不是直接使用length加或减 而是设置新的长度
// 开辟新空间
arr.length = 4
//数组元素删除
arr.length = 2
常用数组API
数组序列化
// 序列化
var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits.toString(' ')); // 以逗号分隔字符串的形式返回数组项
console.log(fruits.join(" --- ")); // 使用指定的字符串用来分隔数组字符串
console.log(fruits.join(" "));
console.log(fruits.reverse()); // 倒序输出
数组也可以使用序列化工具进行转换,并且,数组也存在深拷贝浅拷贝的现象,也可以使用序列化工具解决此问题
var result = JSON.stringify(arr);
console.log(result);//”[1,5,2,8,10,{"a":1}]”
console.log(JSON.parse(result));//[ 1, 5, 2, 8, 10, { a: 1 } ]
构造函数的方法
-
Array.isArray()
用来判断某个变量是否是一个数组对象
// Array.isArray()
// 用来判断某个变量是否是一个数组对象
var res =