簡體   English   中英

在對象數組中查找“albumId”屬性最大值為 3 的對象,例如 100,99,98

[英]Find objects having 3 maximum value for the `albumId` property in an array of objects e.g 100,99,98

這是 json 數據我想檢索那些具有最大值 3 最大值可能是 100,100,100 和 99,99 的 object

[
  
  {
    "albumId": 1,
    "id": 4,
    "title": "culpa odio esse rerum omnis laboriosam voluptate repudiandae",
    "url": "https://via.placeholder.com/600/d32776",
    "thumbnailUrl": "https://via.placeholder.com/150/d32776"
  },
  {
    "albumId": 99,
    "id": 5,
    "title": "natus nisi omnis corporis facere molestiae rerum in",
    "url": "https://via.placeholder.com/600/f66b97",
    "thumbnailUrl": "https://via.placeholder.com/150/f66b97"
  },
  {
    "albumId": 99,
    "id": 6,
    "title": "accusamus ea aliquid et amet sequi nemo",
    "url": "https://via.placeholder.com/600/56a8c2",
    "thumbnailUrl": "https://via.placeholder.com/150/56a8c2"
  },
  {
    "albumId": 100,
    "id": 7,
    "title": "officia delectus consequatur vero aut veniam explicabo molestias",
    "url": "https://via.placeholder.com/600/b0f7cc",
    "thumbnailUrl": "https://via.placeholder.com/150/b0f7cc"
  },
  {
    "albumId": 100,
    "id": 8,
    "title": "aut porro officiis laborum odit ea laudantium corporis",
    "url": "https://via.placeholder.com/600/54176f",
    "thumbnailUrl": "https://via.placeholder.com/150/54176f"
  },
]

什么可以是最好的解決方案圖、foreach 或 reduce

使用 map 時,您希望為每次迭代返回一個值,但由於您不希望數組具有相同數量的值,因此這不是最佳選擇。

這篇codeburst 文章可能會有所幫助

在這三個中,reduce 可能是最好的選擇,但從您給出的描述來看,我的東西過濾器可能是您的解決方案。

如果我理解正確,您想要最大的 3 個(或 num)個基於albumId的對象。

我們可以根據 albumId 對 desc 進行排序並獲取數組切片。 嘗試這個。

 const getLargest = (arr, num) => arr.slice().sort((a, b) => b.albumId - a.albumId).slice(0, num); const data = [ { albumId: 1, id: 4, title: "culpa odio esse rerum omnis laboriosam voluptate repudiandae", url: "https://via.placeholder.com/600/d32776", thumbnailUrl: "https://via.placeholder.com/150/d32776", }, { albumId: 99, id: 5, title: "natus nisi omnis corporis facere molestiae rerum in", url: "https://via.placeholder.com/600/f66b97", thumbnailUrl: "https://via.placeholder.com/150/f66b97", }, { albumId: 99, id: 6, title: "accusamus ea aliquid et amet sequi nemo", url: "https://via.placeholder.com/600/56a8c2", thumbnailUrl: "https://via.placeholder.com/150/56a8c2", }, { albumId: 100, id: 7, title: "officia delectus consequatur vero aut veniam explicabo molestias", url: "https://via.placeholder.com/600/b0f7cc", thumbnailUrl: "https://via.placeholder.com/150/b0f7cc", }, { albumId: 100, id: 8, title: "aut porro officiis laborum odit ea laudantium corporis", url: "https://via.placeholder.com/600/54176f", thumbnailUrl: "https://via.placeholder.com/150/54176f", }, ]; console.log(getLargest(data, 3));

暫無
暫無

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

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