map 和 filter都可以遍历数组:
array.map(fucntion(item, index) {})
array.filter(function(item, index) {})
map 和filter都可以有返回值,并且最后函数都会返回一个新的数组。
不同在于map返回的新数组长度不会改变的,又返回值的就给当前的item赋值为返回值,没有返回的会给undefine。
而filter会过滤掉没返回值得item,返回一个在回调函数里面返回了的所有item组成的新数组。
map:
var data = [1,2,3,4,5,6,7,8] var newData = data.map(function(item, index) { if(item % 2) { console.log(item); return item } }); console.log(newData) //[1, undefine, 3, undefine, 5, undefine, 7, undefine]
filter:
var filterData = data.filter(function(item, index) { if(item % 2) { return item } }); console.log(filterData) //[1, 3, 5, 7]