lodash 重构过滤函数

lodash refactor filter function

我有以下代码,两个组件都使用 lodash 过滤器,我如何抽象函数以免重复代码?

<VictoryScatter
          style={{
            data: { fill: BRAND_COLORS.white, stroke: BRAND_COLORS.chartLine.gradientGrayStart, strokeWidth: 3 },
          }}
          size={5}
          data={_.filter(loanLimitData, (value, key) => {
            return key !== 0 && key !== 6;
          })}
        />
        <VictoryScatter
          style={{
            data: { fill: BRAND_COLORS.white, stroke: BRAND_COLORS.chartLine.gradientBlueStart, strokeWidth: 3 },
          }}
          size={5}
          data={_.filter(loanBalanceData, (value, key) => {
            return key !== 0 && key !== 6;
          })}
        />

所以,我需要为

写一个函数
_.filter(myArray, (value, key) => {
            return key !== 0 && key !== 6;
          })

直接把数组作为参数:

const myFilter = <T extends any>(array: T[]): T[] =>
    _.filter(array, (_, key) => {
        return key !== 0 && key !== 6;
    })

仅供参考,您可以使用内置 Array.prototype.filter 方法执行相同操作:

const myFilter = <T extends any>(array: T[]): T[] =>
    array.filter((_, key) => {
        return key !== 0 && key !== 6;
    })

在您要编写的组件中:

data={myFilter(loanLimitData)}
data={myFilter(loanBalanceData)}