我在为自定义钩子 usePagination 创建接口时遇到问题。我需要帮助来创建这个通用的钩子,因为此时 User 接口与其余接口不相关。dataEntries 是具有 id、firstName 和 lastName 的用户数组。ElementsOnPage 默认设置为 50。
function usePagination(dataEntries,elementsOnPage = 50) {
const [actualPageIdx, setActualPageIdx] = useState(1)
const lastPageIdx = Math.ceil(dataEntries.length / elementsOnPage)
const [isBusy, setIsBusy] = useState(false)
const timeoutRef = useRef<any>(null)
useEffect(() => {
setIsBusy(true)
if (timeoutRef.current) {
clearTimeout(timeoutRef.current)
}
timeoutRef.current = setTimeout(() => {
setIsBusy(false)
}, 333)
}, [actualPageIdx])
const entriesOnSelectedPage = () => {
const firstEntry = (actualPageIdx - 1) * elementsOnPage
const lastEntry = firstEntry + elementsOnPage
console.log(dataEntries.slice(firstEntry, lastEntry))
return dataEntries.slice(firstEntry, …Run Code Online (Sandbox Code Playgroud) 抱歉,如果标题不清楚,请提前声明,但很难用言语描述它。
我拥有的:
const obj = {
a: 5,
b: 3,
c: 0,
d: 9
}
Run Code Online (Sandbox Code Playgroud)
我想要拥有什么:
const arr = [[a, 5] ,[b, 3]]
Run Code Online (Sandbox Code Playgroud)
基本上,我尝试编写一个返回条目数组的函数,但它也满足要求:
第一点对我来说很容易,我可以这样做
Object.entries(obj).filter(([k, v])=> v !== 0)
Run Code Online (Sandbox Code Playgroud)
但我无法处理第二个。
我可以reduce在这里使用吗?