将两个数组合二为一,不重复

Combine two arrays In one without duplicates

使用 ES6+ sintaxe 的最佳方法是什么:

const mapedTopicsArray = [
                            ['javascript', 'reactjs'],
                            ['Java', 'reactjs'],                   
                         ]

为此:

const topicsArrayMergedWithoutDuplicates = ['javascript', 'reactjs','Java']                   
                         

我知道如果我使用 .reduce() 我可以完成它,但我不知道如何实现,嵌套的数组让我很困惑。

您可以使用 Set and flat 轻松获得结果。

const mapedTopicsArray = [
  ["javascript", "reactjs"],
  ["Java", "reactjs"],
];

const topicsArrayMergedWithoutDuplicates  = [...new Set(mapedTopicsArray.flat())];
console.log(topicsArrayMergedWithoutDuplicates );

const mapedTopicsArray = [
                            ['javascript', 'reactjs'],
                            ['Java', 'reactjs'],                   
                         ]


const result = mapedTopicsArray
    .reduce((acc, prev) => acc.concat(prev), [])
    .filter(ifThisItemFirstAppearance)

function ifThisItemFirstAppearance(value, index, self) {
    return self.indexOf(value) === index
}

console.log(result)

首先将列表的列表缩减为列表,然后过滤重复项。

部分归功于 this answer 如何过滤重复项