簡體   English   中英

javascript - 從第一個數組中選擇唯一的項目

[英]javascript - pick unique items from first array

假設我有兩個 arrays 對象

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'
      }]

我希望能夠比較兩個 arrays 並創建一個只有array1唯一成員的新數組,在這種情況下

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

我正在使用 lodash 庫(但如果不需要,則不必解決此問題)並且我想以盡可能少的代碼行來完成此操作。

你好,親愛的兄弟,你使用 Hashset 從列表中自動獲取唯一數據

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

然后再次將此 Hashset 傳遞給 List

它的 JAVA 代碼,但每種語言的邏輯都是相同的

在將頭撞到中間管后,我找到了一個簡單而優雅的解決方案。

如果我(使用 lodash)做

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

arrNew 是來自 array1 的唯一項的新數組。 希望這可以幫助其他人。 很想看看是否有另一種性能更高的解決方案。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM