簡體   English   中英

為什么要更改 getServerSideProps 數據?

[英]Why is getServerSideProps data being changed?

我將從 API 獲取數據,當我將 getServerSideProps 數據傳遞給 index.js 時,prop 數組按等級排序。 [1,2,3..等]。

例如:數據

[
 {rank: 1, price: 123},
 {rank: 2, price: 1958},
 {rank:3, price: 56}
]

當我將該數據更改為不同的變量時,例如:

const topPrice = data
    .sort((a, b) => a.price < b.price ? 1 : -1).slice(0, 3);

控制台日志顯示data現在也按價格排序,當我只想對topPrice進行排序時,為什么?

sort function 會改變您的原始列表data 為避免這種情況,您應該在調用sort之前創建列表的副本

 const data = [{ rank: 1, price: 123 }, { rank: 2, price: 1958 }, { rank: 3, price: 56 } ] const topPrice = [...data].sort((a, b) => a.price < b.price? 1: -1).slice(0, 3); console.log({ data, topPrice })

如果想要更清楚,可以引入一個新的變量來保存新的數組

 const data = [{ rank: 1, price: 123 }, { rank: 2, price: 1958 }, { rank: 3, price: 56 } ] const copiedData = [...data] const topPrice = copiedData.sort((a, b) => a.price < b.price? 1: -1).slice(0, 3); console.log({ data, topPrice })

暫無
暫無

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

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