目录
构造
字面
检查类型
转换
排序
拷贝
栈和队列
var arr = new Array() // 作为对象创建,直接创建
var arr = Array() // 作为方法执行,可以省略new
var arr = new Array // 作为对象创建,省略括号
var arr = new Array() // 长度0, 无内容
var arr = new Array(3) // 初始容量为3的数组
var arr = new Array('a', 'b', 'c') //['a', 'b', 'c'], 直接按照元素构造
var arr = new Array('string', false, 3) // 类型不要求单一
var arr = [] //空参
var arr = [3, 4, 5] //没有长度声明,内部都是元素
var arr = []
typeof arr //输出:object
//类型没有array,显示的是object, 不能通过类型判断是否是数组。
var arr = []
arr instanceof Array // 输出:true
var arr = []
Array.isArray(arr) // 输出:true
object:
//keys:属性名称列表
//values:属性数值列表
var obj = {a:1,b:2,c:3}
var arr = Object.keys(obj) // [ 'a', 'b', 'c' ]
arr.length // 3
var values = Object.values(obj) // [ 1, 2, 3 ]
for(var i=0; i
String:
//split:分割字符串为数组,支持单字符和字符串。
var s = 'string';
var arr = s.split(''); // [ 's', 't', 'r', 'i', 'n', 'g' ]
toString:
var arr = 'array'.split(''); // [ 'a', 'r', 'r', 'a', 'y' ]
arr.toString(); // 'a,r,r,a,y'
arr.join(); // 'a,r,r,a,y'
arr.join('-'); // 'a-r-r-a-y'
arr.join(''); // 'array'
var arr = [11,2,333,44,5]; // [ 11, 2, 333, 44, 5 ]
//传入匿名函数可以指定排序规则
arr.sort(function(a,b){
return a - b;
}); // [ 2, 5, 11, 44, 333 ]
arr.sort(function(a,b){
return b - a;
}); // [ 333, 44, 11, 5, 2 ]
//反转
arr.reverse(); // [ 5, 44, 333, 2, 11 ]
简单引用,浅拷贝
var arr = [11,2,333,44,5];
var arr2 = arr;
arr.reverse(); // [ 5, 44, 333, 2, 11 ]
arr2 // [ 5, 44, 333, 2, 11 ]
复制,深拷贝
var arr = [11,2,333,44,5];
var arr2 = [...arr]
arr.reverse(); // [ 5, 44, 333, 2, 11 ]
arr2 // [ 11, 2, 333, 44, 5 ]
stack:
var arr = [];
arr.push(3); // 1
arr.push(4); // 2
arr // [3, 4]
var arr = [7,8,9];
arr.pop() // 9
arr.pop() // 8
arr.pop() // 7
queue:
var arr = [7,8,9];
arr.shift() // 7
arr.shift() // 8
arr.shift() // 9
var arr = [];
arr.unshift(7); // 1
arr.unshift(8); // 2
arr.unshift(9); // 3
arr // [ 9, 8, 7 ]
插入:
/*
Array不要求类型统一,因此直接插入[]时当做对象进行插入。
如果想要插入数组内部数据时,需要...[]进行数据的遍历枚举。
同时,push()中可以传入多个需要插入的元素,可以一次性进行多个元素的插入。
*/
var arr = [];
arr.push([9, 99])
arr.push(...[8, 88])
arr.push(7, 77)
arr // [ [ 9, 99 ], 8, 88, 7, 77 ]
拼接:
var a = [1];
var b = [2];
var c = a.concat(b); // [ 1, 2 ]
var d = b.concat(a); // [ 2, 1 ]
a // [1]
b // [2]
var e = a.concat(9, 5);
e // [ 1, 9, 5 ]
检索:
var arr = [1,1,1]
arr.indexOf(1) // 0
var arr = [1,1,1]
arr.lastIndexOf(1) // 2
遍历:
var arr = [7,8,9]
var result = arr.map(function(a){
return a - 2; // 每个人扣两块钱班费
}) //[5, 6, 7]