1. 方法概述
它用于把Array
的某些元素过滤掉,然后返回剩下的元素组成的数组。
2. 例子
2.1 尝试用filter()
筛选出素数:
'use strict'; function get_primes(arr) { var result = []; result = arr.filter(function(n){ var flag = false; if(n>1){ flag = true; for(var i=2; i<n; i++){ if(n%i===0){ flag = false; break; } } } return flag; }); return result; } // 测试: var x, r, arr = []; for (x = 1; x < 100; x++) { arr.push(x); } r = get_primes(arr); if (r.toString() === [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97].toString()) { alert('测试通过!'); } else { alert('测试失败: ' + r.toString()); }
2.2 过滤json中无效的entries
var arr = [ { id: 15 }, { id: -1 }, { id: 0 }, { id: 3 }, { id: 12.2 }, { }, { id: null }, { id: NaN }, { id: 'undefined' } ]; var invalidEntries = 0; function filterByID(obj) { if ('id' in obj && typeof(obj.id) === 'number' && !isNaN(obj.id)) { return true; } else { invalidEntries++; return false; } } var arrByID = arr.filter(filterByID); console.log('Filtered Array ', arrByID); // Filtered Array // [{ id: 15 }, { id: -1 }, { id: 0 }, { id: 3 }, { id: 12.2 }] console.log('Number of Invalid Entries = ', invalidEntries); // Number of Invalid Entries = 4