数组(Array)
-数组也是一个对象
-和普通对象功能类似,也是用来存储一些值的。
-不同的是普通对象是使用字符串作为属性名,而数组是使用索引来操作元素。
数组中的元素可以是任意的数据类型(数组,对象,函数都可以)
数组的遍历:forEach() 这个方法只支持IE8以上的浏览器
arr.forEach(function(a,b,c){...})需要将一个函数作为参数(回调函数,即由我们创建但不由我们调用),数组中有几个元素就执行几次,每次执行时,浏览器会将遍历到的元素,以实参的形式传递进来,我们可以来定义形参,来读取这些内容。
第一个参数:当前正在遍历的元素;
第二个元素:当前元素的索引;
第三个元素:当前遍历的数组。
slice(a,b)
splice(a,b,c,...)
第一个参数:表示开始删除位置的索引;
第二个参数:表示删除的数量;
第三个以后:可以传递一些新元素,会插入到开始位置索引的前边。
join(a) 将数组中的元素用a连接起来,返回字符串类型,无参数时用","连接。
reverse()会修改原数组,用来反转数组。
sort()对数组中的元素进行排序(按Unicode编码排序,从小到大),也会影响原数组。(对数字进行排序,可能会得到错误的结果)
但我们可以自己来指定排序规则,可以在sort()添加一个回调函数,来指定排序规则,
回调函数中需要定义两个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数,
使用哪个元素不确定,但是肯定的是在数组中a一定在b前面
浏览器会根据回调函数的返回值来决定元素的顺序,
如果返回一个大于0的值,则元素会交换位置;
如果返回一个小于0的值,则元素会不变的;
如果返回一个0;则认为两个元素相等,也不交换位置。
/**
* 如果需要升序排列,则返回a-b
* 如果需要降序排列,则返回b-a
*/
arr.sort(function(a,b){
return a-b;
});