首先用一个案例可以很直观的看到 find 和 filter 的区别;
相同点:
- 两者分别可以接受三个参数:当前元素、当前索引、整个数组;
- 两者都可以用来查找数组中符合条件的元素;
不同点:
- find:
- 用于查找单个符合条件的元素;返回的是符合条件的元素;
- 在同一个数组中有多个符合条件的元素的时,只查找第一个符合条件的元素,找到后终止循环;如果我们不需要找到所有符合条件的元素,使用这个方法会更高效;
- filter:
- 用于查找多个符合条件的元素;返回的是元素的集合(一个新的数组);
- 在同一个数组中有多个符合条件的元素的时,遍历数组中所有的元素,找出所有符合条件的元素后终止循环,返回一个集成的数组,不会影响原数组