- forEach
- forEach 是ES5新方法中最基本的一个,就是遍历,循环。类似for
- arr.forEach(function(value,index,array){})
- value -- 遍历的数组内容
- index -- 对应的数组索引
- array -- 数组本身
-
- 这时同学发现了forEach方法跟jQuery中的$.each()方法使用相同,但是注意了$.each(arr,function(index,value,array){}),两者之间虽然类似,但是存在差异。forEach参数顺序是value,index,array。$.each参数的顺序是 index,value,array。粗心的同学可要小心咯。
- arr.forEach(callback,[thisobject]);
- callback -- 回调函数,必须含有一个回调函数的参数。
- [thisobject] -- 可选的上下文参数,改变回调函数里面的this指向。
- 如果没有指明[thisobject]的话,则使用全局对象代替(window -- 浏览器),严格模式下是undefined("use strict").
- 但是值得注意的是,forEach不会遍历“占着茅坑不拉屎”的人。
- var arr = [1,,2]。其中空字符串不会被遍历,但是保留他的index。
- map
- map是映射的意思,用法跟forEach差不多。映射,就是原数组被映射成对应的新数组。
- arr.map(callback,[thisobject])。
- arr.map(function(value,index,array){})
- filter
- filter是过滤、筛选的意思。数组filter之后,返回过滤后的数组。用法和map相似
- array.filter(callback,[thisobject])
- callback需要返货一个boolean值,如果是true,则通过筛选。如果是false,则被抛弃
- some
- 指某些,是否某些项符合条件。基友 -- every
- array.some(callback,[thisobject])
- 如果数组中的某一项符合条件,则callback返回true。some只要有true返回,下面的遍历不进行。
- every
- 必须每一个数组内容都符合。基友 -- some
- array.every(callback,[thisobject])
- indexOf
- 这个是数组的indexOf,字符串一直有indexOf()方法。数组的方法也与字符串相似。
- array.indexOf(searchelement,fromindex) // 从数组的fromindex开始寻找searchelement值,若存在,返回位置。不存在返回-1
- 返回整数索引值,如果没有匹配。则返回-1.fromindex是可选的,表示从这个位置开始搜索,若缺省或者格式要求不合格,使用默认值为0,数值和字符串都可以。
- lastIndexOf
- reduce
- 迭代,递归
- array.reduce(callback,initialValue)。 initialValue参数可选,表示初始值。若指定,这当做最初使用的previous值,若缺省,则使用数组的第一个元素作为previous初始值,同时current往后排一排。相比有initialValue值少一次更迭。 var arr = [1,2,3,4]
- callback接受4个参数。 array.reduce(function(previous,current,index,array){},initialValue)
- previous : 初始值。设定的initialValue,若initialValue没有设定,则是数组的第一个元素
- current : 往后的一个元素。如果initialValue是缺省值,previous是数组的第一个元素,current是数组的第二个元素。如果initialValue制定了数的话,previous是initialValue指定的值,curent是数组的第一个元素。
- index : 索引值
- array: 对应的数组
- reduceRigth
- ECMAScript5中新增了数组的许多方法,使用起来更加的遍历,同学们赶快自己摸索起来吧。
- 查看文档发现es5新增了isArray()方法。这个方法总结写在数组的构造器上,而没有写在数组的原型上。
- Array.isArray([1,2,3]); // true
|