javascript - 从第一个数组中选择独特的项目

javascript - pick unique items from first array

假设我有两个对象数组

const array1 =  [{
        listName: 'My top 5 Sci-Fi Movies',
        listCreator: 'Anon',
        listItem: 'The Fifth Element'
      },
      {
        listName: 'My top 5 Sci-Fi Movies',
        listCreator: 'Anon',
        listItem: 'Cube'
      }]

const array2 = [{
        listName: 'My top 5 Sci-Fi Movies',
        listCreator: 'Anon',
        listItem: 'The Fifth Element'
      },
      {
        listName: 'My top 5 Sci-Fi Movies',
        listCreator: 'Dude',
        listItem: 'Cube'
      }]

我希望能够比较这两个数组并创建一个仅包含 array1 唯一成员的新数组,在本例中为

const uniqueArray = [{
            listName: 'My top 5 Sci-Fi Movies',
            listCreator: 'Anon',
            listItem: 'Cube'
          }]

我正在使用 lodash 库(但如果不需要,则没有必要解决此问题),我想用尽可能少的代码行来完成此任务。

我在试管间管后找到了一个简单而优雅的解决方案。

如果我(使用 lodash)做

const arrNew = _.differenceWith(array1, array2, _.isEqual);

arrNew 是 array1 中独特项目的新数组。希望这可以帮助别人。 很想看看是否还有其他性能更高的解决方案。

https://lodash.com/docs/4.17.15#differenceWith

你好亲爱的兄弟,你使用哈希集从列表中自动获取唯一数据

HashSet<Integer>set = new HashSet<Integer>(list1);
List<Integer>list2 = new ArrayList<Integer>(set);

然后再把这个Hashset传递给List

它的 JAVA 代码,但逻辑对于每种语言都是相同的