学习完一遍之后,看着目录,采用回顾法学习相关内容,温故而知新,后面遇到数组的内容慢慢添加进来。
7.1创建数组
数组在JavaScript也是对象,所以对象一般两种方法创建:
- var a = new Array(10); //创建一个长度为10的数组
- var a = [1,2,3,4,5,6]; //直接创建一个数组
7.2 数组的读写
通过[]来读取数组数据,实际是将其中的整数,转换为字符串作为属性读入,返回值。
试过a[‘1’]和a[1]的效果是一模一样的。
var a = [1,2,3,4]
a[1]===a['1']
true
7.3稀疏数组
中间有undefined、null值的数组,尽量避免这样的数组吧
7.4 数组长度
数组长度直接使用object.length即可,如前面所述类似
7.5 数组元素的添加和删除
添加的方法可以用push,在数组的尾部添加一个元素。
delete a[0] 即可删掉第一个元素,但是使用delete有个坑,就是它只删去元素,但是会留下一个undefined在那儿,所以一般推荐使用splice。
7.6 数组的遍历
直接使用for循环即可遍历,另外避免使用for in 函数来遍历,因为还需要过滤到继承的属性。
7.7 多维数组
JavaScript实际上没有多维数组的概念,但是可以自己添加数组的数组。
7.8 数组的方法
数组的方法:
- Array.join() 和 String.split() 是一对逆向操作。
- Array.reverse()颠倒顺序。
- Array.sort()排序,不会按你想的那样排序;所以需要
a.sort(function(a,b){return b-a});
- Array.concat() 链接一个数组,然后返回一个新的数组
- splice(), 最终的方法之一,需要后面详细写:
- push() 和 pop():添加到最后一个,弹出最后一个;
- unshifit() 和 shift(): 添加最前面一个,弹出最前面一个;
7.9 EMScript5中的方法
- forEach()
- map()
- filter()
- every() 和 some()
- reduce() 和reduceRight()
//抽时间完成上面方法的例子。
7.10数组类型
新的方法终于解决了typeof不能好好判断是不是数组的问题
Array.isArray([]),实际上就是使用了
var isArray = Function.isArray || function(o){
return typeof o ==='object' &&
Object.prototype.toString.call(o) === '[object Array]';
}
7.11 类数组对象
7.12 作为数组的字符串
使用[]代替了charAt()的方法,更加方便,另外可以string可以使用array通用的方法,例如join/filter/match等。