[英]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.