filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。filter return的是筛选条件,map return的是计算结果
filter筛选过滤
<script type="text/javascript">
var array = [
{'number':1},
{'number':2},
{'number':3},
{'number':4},
{'number':5}
];
var array_filter = array.filter(function(element,index,self){
console.log(element); // 依次打印子项'{'number':1}','{'number':2}'...
console.log(index); //依次打印下标0,1,2,3
console.log(self); // 打印数组array
return element.number < 3;
});
console.log(array_filter);
// 打印 [{'number':1}, {'number':2}]
</script>
map计算生成新数组
<script type="text/javascript">
var array = [
{'number':1},
{'number':2},
{'number':3},
{'number':4},
{'number':5}
];
var array_map = array.map(function(element,index,self){
console.log(element); // 依次打印子项'{'number':1}','{'number':2}'...
console.log(index); //依次打印下标0,1,2,3
console.log(self); // 打印数组array
element.number = element.number * 3;
return element;
});
console.log(array_map);
// 打印 [{'number':3}, {'number':6},{'number':9}, {'number':12}, {'number':15}]
</script>