数组遍历的map和filter

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]

你可能感兴趣的:(javascript)