如何删除数组中的重复函数?

问题描述 投票:0回答:2

我有3个功能

const func1 = () => {
  return 1
}
const func2 = () => {
  return 1
}
const func3 = () => {
  return 2
}
let arr = [func1, func2, func3]

如何从

func1
中过滤重复项(
func2
arr
),这样我就会有这样的东西
filteredArr=[()=>{return 1},()=>{return 2}]

尝试对它们中的每一个进行字符串化,然后将 if 与 eval 一起使用,但我想在不使用 eval 的情况下过滤数组

javascript arrays function filter
2个回答
2
投票

您可以通过在内部进行额外检查来过滤数组,但这需要您调用函数。

const func1 = () => {
  return 1
}
const func2 = () => {
  return 1
}
const func3 = () => {
  return 2
}

let arr = [func1, func2, func3]

const uniqueItems = arr.filter((func, index, array) =>
  index === array.findIndex(f => f() === func())
)

console.log(uniqueItems)


0
投票

您可以使用 lodash 库(这里有文档):

import _ from 'lodash';

const uniqueValues = _.uniq(arr)
© www.soinside.com 2019 - 2024. All rights reserved.