1.数据基础
ECMAScript数组是有序列表,是存放多个值的集合。
有以下特性: 每一项都可以保存任何类型的数据。
数组的大小是可以动态调整。
js中的数组是可以存放任意数据类型值的集合,数组的元素可以是任意数据类型,数组的长度可以动态调整。
2.数据创建
初始化
使用数组字面量
使用Array构造函数
-
字面量创建数组
由一对包括元素的方括号"[]"表示,元素之间以逗号","隔开
var name = ['lisi','wangwy','zhuzi']
var name = 'name'
//可以接收任何类型的数据当做数组的元素
var arr = [12,name,false,'shushu',{},function(),[],null];
//通过数组下表获取对应的数据
console.log(arr,arr[2);
//获取数组长度
console.log(arr.length);
-
构造函数创建数组
通过Array构造函数来创建数组
var names = new Array();// 等价于 var names = [];
// 如果一个参数,并且是number类型的整数,则代表的是数组的长度。如果是number类型的小数,则报错。如果是其他类型,则当做数组元素放进去。
//var arr = new Array(length); 创建一个长度为length的数组
var names = new Array(3);
// 创建一个包含3个元素的数组 var arr = [undefined,undefined,undefined];
//var ages = new Array(2.4);//Error: Invalid array length
var ages = new Array("2.4");
var names = new Array('terry') //创建一个包含1个元素的数组,该元素的值为'terry'
// 两个参数或者多个参数,当做数组元素放进去
var names = new Array('terry','robin')//创建一个数组,数组中的元素使用实参初始化
3.数据访问
访问数据元素
数据变量名[索引]
//如果索引小于数组的长度,返回对应项的值
var arr = ["lisi","wangwu","ooo"];
arr[0] ; //访问数组中第一个元素,返回值为lisi
//如果索引大于等于数组的长度,返回undefined
var arr = ["lisi","wangwu","ooo"];
arr[10] //undefined
//如果给索引大于等于数组的长度的位置设置了值,数组自动增加到该索引值加1的长度
var arr = ["lisi","wangwu","ooo"];
arr[3] ="jacky"; //添加元素,数组长度变为4
//注意!数组最多可以包含4 294 967 295个项
通过索引访问数组,数组的索引从0开始,数组的索引超过数组长度会访问到undefined值而不会报错。数组的长度通过length属性获取
a) [index] 直接访问,索引可以超过索引范围,只不过访问的值为undefined
b) length-1=Max(index)
c) length+N 或 length-N 开辟新的内存空间 或 数组元素的删除
var arr = ["terry","larry","tom"]
// a.[index]
console.log(arr[0]) //"terry"
// b.length-1=Max(index)
arr[arr.length - 1]
// length+N length-N 并不是直接使用length加或减 而是设置新的长度
// 开辟新空间
arr.length = 4
//数组元素删除
arr.length = 2
// 数组的遍历:
// 普通的for循环、增强版for循环、while循环、do-while循环
var arr = [1,2,3];
for(var i=0;i<arr.length;i++){
var item = arr[i];
}
for(var index in arr){
var val = arr[index]
}
4.数组API
4.1.数组序列化
toString() 在默认情况下都会以逗号分隔字符串的形式返回数组项
join() 使用指定的字符串用来分隔数组字符串
var arr = [1,5,2,8,10,{a:1}];
console.log(arr);//[ 1, 5, 2, 8, 10, { a: 1 } ]
console.log(arr.toString());//”1,5,2,8,10,[object Object]”
console.log(arr.join(""));//”152810[object Object]”
console.log(arr.join("-"));//”1-5-2-8-10-[object Object]”
// 数组也可以使用序列化工具进行转换,并且,数组也存在深拷贝浅拷贝的现象,也可以使用序列化工具解决此问题
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 } ]
4.2.构造函数的方法
-
Array.isArray()
用来判断某个变量是否是一个数组对象
-
Array.from()
从类数组对象或者可迭代对象中创建一个新的数组实例。
var myArr = Array.from("BRIUP");
console.log(myArr);
//输出结果为["B","R","I","U","P"]
-
Array.of()
Array.of(7); // [7]
Array.of(1, 2, 3); // [1, 2, 3]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。