亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果有重復的JS,不要重復顯示相同的項目

如果有重復的JS,不要重復顯示相同的項目

陪伴而非守候 2022-10-27 15:05:56
您好,感謝您花時間回答我的問題。所以有上下文:我創建了一個 API。 我這樣顯示數據: [1]:https ://i.stack.imgur.com/lJ064.png不過,我只想在運動鞋名稱上方顯示日期(例如:2020-07-04)所以如果運動鞋有相同的日期,我想刪除包含日期的換句話說,我想擁有這個:https://i.stack.imgur.com/aFiXO.png所以我嘗試了:實際上我知道如何從數組中刪除重復數據,但在這種情況下不想刪除它,我只想顯示一次:)你有什么思路嗎?
查看完整描述

2 回答

?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

您可能想要做的是將數據分組而不是過濾/刪除項目。


所以如果你從一個形狀開始


[

  {name: 'bloodline', date: '2020-07-04' },

  {name: 'celtics', date: '2020-07-04' },

  {name: 'air dior', date: '2020-07-08' },

  {name: 'bloodline 2.0', date: '2020-07-08' },

]

你可能想把它改成類似


{

  '2020-07-04': [

    {name: 'bloodline', date: '2020-07-04' },

    {name: 'celtics', date: '2020-07-04' },

  ],

  '2020-07-08': [

    {name: 'air dior', date: '2020-07-08' },

    {name: 'bloodline 2.0', date: '2020-07-08' },

  ]

}

或者嵌套數組可能更容易在反應中使用


[

  {

    date: '2020-07-04',

    items: [

      {name: 'bloodline', date: '2020-07-04' },

      {name: 'celtics', date: '2020-07-04' },

    ],

  }, {

    date: '2020-07-08',

    items: [

      {name: 'air dior', date: '2020-07-08' },

      {name: 'bloodline 2.0', date: '2020-07-08' },

    ]

  }

]

然后您將映射項目并僅渲染對象鍵或外部date

Lodash 有一個groupBy你可以使用的函數(https://lodash.com/docs/#groupBy),或者這里是一個獨立的實現


查看完整回答
反對 回復 2022-10-27
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

假設您的 API 的響應是這樣的:


const data = [

  {

    title: 'bloodline',

    date: '2020-07-04'

  }, {

    title: 'celtics',

    date: '2020-07-04'

  }, {

    title: 'air dior',

    date: '2020-07-08'

  }

];

然后你可以使用LoDash 的 groupBy方法并做這樣的事情:


const data = [

  {

    title: 'bloodline',

    date: '2020-07-04'

  }, {

    title: 'celtics',

    date: '2020-07-04'

  }, {

    title: 'air dior',

    date: '2020-07-08'

  }

];


const grouped = _.groupBy(data, 'date');


for (let date in grouped) {

  // display date here

  console.log(date);

  

  for (let item of grouped[date]) {

    // display each item title here

    console.log(item.title);

  }

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

注意:由于您沒有提供任何源代碼,很可能您需要根據您的用例調整此代碼段,但這可能是解決它的起點。


查看完整回答
反對 回復 2022-10-27
  • 2 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號