gpt4 book ai didi

Javascript:用另一组项目替换数组中的项目

转载 作者:行者123 更新时间:2023-11-30 16:29:59 25 4
gpt4 key购买 nike

我有一个应用程序,我可以从我的服务器获取一些数据并将其保存在一个数组中。当我显示它时,我想分页显示它,所以我决定每页有 50 个项目。

我想实现刷新功能,以便刷新当前查看的页面。例如,如果我已经加载了 3 个页面,这意味着我的数组中有 150 个项目,我刷新第 2 页(这意味着我从我的服务器获取项目 50-99)我想用新的替换当前项目项目。

基本上我想做的是删除当前数组中的第 50-99 项,并从索引 50 开始向当前数组插入"new"50 项。

我尝试这样做:

// remove the items
items.splice((this.currentPage*50 -50), 50)

// add the new freshly grabbed items instead
Array.prototype.splice.apply(
items,
[(this.currentPage*50 -1), data.data.length].concat(data.data));

但它似乎确实有点问题。如果我只加载了一页,那么它会按预期工作。它删除所有 50 个项目并用新项目替换它们。但是,如果我加载了 2 个页面并尝试刷新第 1 页,我会突然看到当前项目数组的长度是 99 而不是 100。我试过玩这个但我就是无法让它工作:/

知道如何根据当前刷新的页面有效地从我的数组中删除一组项目,并将删除的项目替换为包含新项目的新数组吗?

最佳答案

我想,你不需要这个。

// remove the items
items.splice((this.currentPage*50 -50), 50)

否则你需要为这样的长度实现一个0:

// add the new freshly grabbed items instead
Array.prototype.splice.apply(
items,
[(this.currentPage - 1) * 50, 0].concat(data.data));
// ^

最好的办法是像这样一步完成:

var a = Array.apply(null, { length: 150 }).map(function (_, i) { return i; }),
b = Array.apply(null, { length: 50 }).map(function (_, i) { return i + 1050; });

Array.prototype.splice.apply(a, [50, b.length].concat(b));
document.write('<pre>' + JSON.stringify(a, 0, 4) + '</pre>');

关于Javascript:用另一组项目替换数组中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33465559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com