1.定义

filter为数组中的每个元素调用一次callback函数,并利用所有使得“callback返回为true的元素”创建一个新数组。

  1. var new_array = arr.filter(callback[,thisArg]);

2.基础用法

  1. var spread = [12,5,8,130,44];
  2. //筛选条件符合大于10的新数组
  3. var filtered = spread.filter(n=> n>=10);
  4. console.log(filtered); //[12,130,44]

3.进阶用法

数组对象的键名/键值的搜索

  1. var users = [
  2. { 'user': 'barney', 'age': 36, 'active': true },
  3. { 'user': 'fred', 'age': 40, 'active': false },
  4. { 'user': 'ared', 'age': 24, 'active': false },
  5. { 'user': 'ered', 'age': 80, 'active': false },
  6. { 'abc': 'ered', 'age': 80, 'active': false }
  7. ]
  8. // 筛选 age等于40或者age等于24的 数组对象
  9. var filtered = users.filter(n => n.age===40 || n.age===24)
  10. console.log(filtered)
  11. // => [{user: "fred", age: 40, active: false},{user: "ared", age: 24, active: false}]

4.一句话总结

充分利用callback返回true的特点当作“过滤条件”函数,产生新的数组