pagination 기능이 엉망으로 코딩되어 있는 것을 발견...
흡사 코테문제 같은 기능이길래 짬내서 고쳐보았다.
그런데 사실 혼자 해결못했고
chatGPT 이녀석이 또...
대답을 넘나 잘해쥼
pagination 한 page에 data가 10개씩 들어가도록 구현되어 있는 상황이였고
ex. data가 75개면 1-6까지 pagination 숫자가 보이다가 page가 6을 넘어갈 때 7-8이 보이도록 구현하고 싶었다.
getVisiblePages = (objects) => {
const { current, number_pages: count } = objects; // 1
const visiblePageObj = {}; // 2
for (let page = 1; page <= count; page += 1) {
const key = Math.ceil(page / 6); // 3
if (visiblePageObj[key]) {
visiblePageObj[key].push(page); // 5
} else {
visiblePageObj[key] = [page]; // 4
}
}
const visiblePages = visiblePageObj[Math.ceil(current / 6)];
return visiblePages; // 6
};
const current = objects.current;
const count = objects.number_pages;
//console.log(visiblePageObj)
{
1: [1, 2, 3, 4, 5, 6],
2: [7, 8]
}
더 나아가서 Object.values() 메서드를 사용하면 객체의 value 값인 배열들만 빼올 수도 있다.
const result = Object.values(visiblePageObj);
//console.log(result)
[[1, 2, 3, 4, 5, 6], [7, 8]]
chatGPT 보다 똑똑해지는 그 날까지... cheers✨