廖雪峰JavaScript—filter用法
filter可以把array中的某些元素过滤掉,它可以把传入的函数依次作用于每个元素。然后根据返回值是true则保留,false 则删除元素。
实例1:去除数组中的偶数
var arr=[1,2,4,5,6,9,15];
var r=arr.filter(function(x) {
return x%2!==0 }) // 2为偶数,返回false,删除该元素
实例2:去除array中重复的元素
'use strict';
var
r,
arr=['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'straberry']
r=arr.filter(function(element, index, self) {
return self.indexOf(element)===index
//indexOf返回第一个元素的位置,后续的重复位置将与其不等
})
练习1: 用filter筛选出素数
‘use strict’;
function get_primes(arr) {
return arr.filter(function(element) {
if (element===1) return false
for (var x=2; x<element; x++) {
if (element%x===0) {
return false}
return true }
)
}