数组也是对象的一种,ES数组的每一项可以保存任何类型的数据。
1、数组的创建方式(2种)
var a = new Array();
var a = Array();
注:在数组中间传入数值和字符串的意义不同:
当传入数值时,长度就为传入的数值。例:传入5长度为5个空格。
当传入字符串时,长度就是传入的哪一项。例:传入‘5’就为5个。
数组字面量表示法创建数组
数组字面量由一对包含数组项的方括号表示("[]"),多个数组项之间以逗号隔开。
例:var m = [12, '55', 'ggh' , {k:'xxxds'}];
数组间用逗号隔开、在逗号厚加个空格
var循环数组(通过for in去找)
var uu = ['a','b','v','f','r']
for(var i in uu){
console.log(i);找到下标
console.log(uu[i]);找到具体内容
}
转换方法
所有对象都具有toLocaleString()、toString和valueof()方法。
·toString()方法返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串;
·valueOf()返回的还是数组;
·toLocaleString()方法也经常返回与toString和valueof()方法相同的值,
join()方法 数组转字符串
join()方法使用不同的分隔符来构建字符串。只接受一个参数,即用作分隔符的字符串,然后
返回包含所有数组项的字符串。
例:var k = [3,2,'yyyyy',55,'hhgfd']
console.log(k.join('--'));
此时打印为3--2--yyyyy--55--hhgfd
注:以上四种方法默认使用逗号隔开,写了就变为了新给的分隔符
另外这些数组里面包含null或undefined时打印出来就是空(即 ‘’)
栈方法
栈是一种LIFO(后进先出)last in first out【死胡同的停车场】的数据结构,也就是最新添加的项最早被移出。
类似栈行为的ES法方:
·push()方法:接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
·pop()方法:从数组的末尾移除最后一项,减少数组的length值,然后返回被移除的项。
队列方法
队列数据结构的访问规则是FIFO(先进先出)【】。
ES模拟队列: ·unshift()方法:在数组的前端添加任意个项并返回新数组的长度。 ·shift()方法:从数组的前端移除第一项(也就是位置索引值为0),减少数组的length值,然后返回被移除的项。
重排序方法
reverse()方法:反转数组项的顺序。
例:
var h = [1,2,3,4,5,6,7,8];
h.reverse();
console.log(h); //8,7,6,5,4,3,2,1
·sort()方法:排序
sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,来确定顺序。
例:
var p = [0,3,8,11,15];
p.sort();
console.log(p); //0,3,11,15,8
解决方法:sort()方法可以接收一个比较函数最为参数,以便指定哪个值位于前面。
例:
var c = [0,1,5,10,15];
c.sort(function(x,f){
return x-f; //升序
return f-x; //降序
});
console.log(c);