提问者:小点点

对有效但不确定原因的 github copilot 解决方案感到困惑


所以我被react应用程序中的一个bug卡住了(一般来说,我是React和JS的新手),我想过滤公司名称列表,这样它们都是唯一的,不会重复。所以我打开github copilot,得到了一个可行的解决方案,但是我不知道为什么或者它在做什么。有人能帮我吗?

    useEffect(() => {
        const companyNames = data.map(app => app.companyName);
        const uniqueCompanies = [...new Set(companyNames)];
        setCompanies(uniqueCompanies);
    },[data]);

我不明白如何[...新 集(公司名称)] 过滤掉唯一名称或正在发生的事情。据我所知,您只能在已经存在的数组上使用 spread 运算符,因此也不知道新数组来自何处。


共1个答案

匿名用户

表达式 const unique公司 = [...新集(公司名称)];包含以下有趣的属性:

  • [] 是一个数组文字
  • new Set(companyNames) 一个新的JavaScript Set,通过设计只能包含唯一值,提供“开箱即用”的过滤。
  • 此处的数组扩展运算符会将 Set 扩展为 Array,从而有效地将 Set 转换为 Array。