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

iq0todco  于 2023-03-21  发布在  Java
关注(0)|答案(2)|浏览(137)

此问题在此处已有答案

(91个答案)
11小时前关门了。
我有三个功能

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

如何从arr中过滤重复项(func1func2),以便得到类似于filteredArr=[()=>{return 1},()=>{return 2}]的内容?
我尝试将它们每个字符串化,然后使用if和eval,但我想过滤数组而不使用eval

ql3eal8s

ql3eal8s1#

您可以在数组中使用附加检查来过滤数组,但这需要调用函数。

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)
ufj5ltwl

ufj5ltwl2#

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

import _ from 'lodash';

const uniqueValues = _.uniq(arr)

相关问题