Words etch cherished moments.
OG

过滤数组中的元素

1,072 words, 3 min read
2018/10/05 AM
235 views

#TypeScript 实现自定义过滤数组方法

          
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
/** * 自定义过滤数组函数,根据给定的过滤函数 fn 过滤数组 arr。 * * @param arr 整数数组 * @param fn 过滤函数,接受一个或两个参数: * - arr[i] - 数组中的数字 * - i - 数字 arr[i] 的索引 * @returns 返回过滤后的数组 filteredArr,其中包含使 fn(arr[i], i) 返回真值的 arr 元素。 */ function filter(arr: number[], fn: (n: number, i: number) => any): number[] { const list: number[] = [] // 遍历数组 arr,对每个元素应用过滤函数 fn arr.forEach((item, i) => { const bool = fn(item, i) // 如果过滤函数返回真值,则将元素添加到结果列表中 if (bool) { list.push(item) } }) // 返回过滤后的数组 return list }; // 示例用法 const example1 = [0, 10, 20, 30]; const greaterThan10 = function(n: number) { return n > 10; }; console.log(filter(example1, greaterThan10)); // 输出:[20, 30] const example2 = [1, 2, 3]; const firstIndex = function(n: number, i: number) { return i === 0; }; console.log(filter(example2, firstIndex)); // 输出:[1] const example3 = [-2, -1, 0, 1, 2]; const plusOne = function(n: number) { return n + 1; }; console.log(filter(example3, plusOne)); // 输出:[-2, 0, 1, 2]
Creative Commons BY-NC 4.0
https://zhangwurui.cn/article/27
0/0comments
Guest
Start the discussion...
Be the first to comment