回到课程

通过函数筛选

重要程度: 5

数组中有个内建的 arr.filter(f) 方法。它通过函数 f 过滤元素。如果元素返回 true 的,那么该元素会被返回到结果数组中。

制造一系列『马上能用』的过滤器:

  • inBetween(a, b) —— 在 ab 之间或与它们相等(包括)。
  • inArray([...]) —— 包含在给定的数组中。

用法如下所示:

  • arr.filter(inBetween(3,6)) —— 只挑选 3 和 6 之间的值。
  • arr.filter(inArray([1,2,3])) —— 只挑选与 [1,2,3] 其中成员匹配的元素。

举个例子:

/* .. inBetween 和 inArray 的代码 */
let arr = [1, 2, 3, 4, 5, 6, 7];

alert( arr.filter(inBetween(3, 6)) ); // 3,4,5,6

alert( arr.filter(inArray([1, 2, 10])) ); // 1,2

打开带有测试的沙箱。

inBetween 筛选器

function inBetween(a, b) {
  return function(x) {
    return x >= a && x <= b;
  };
}

let arr = [1, 2, 3, 4, 5, 6, 7];
alert( arr.filter(inBetween(3, 6)) ); // 3,4,5,6

inArray 筛选器

function inArray(arr) {
  return function(x) {
    return arr.includes(x);
  };
}

let arr = [1, 2, 3, 4, 5, 6, 7];
alert( arr.filter(inArray([1, 2, 10])) ); // 1,2

使用沙箱的测试功能打开解决方案。