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

时间:2015-11-01 18:19:58

标签: javascript arrays

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

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

基本上我想要做的是删除当前数组中的项目50-99,并将“新”50项添加到从索引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));

但它看起来似乎有点儿马车。如果我只加载了1页,那么它按预期工作。它删除所有50个项目并用新项目替换它们。但是,如果我加载了2个页面,并且我尝试刷新第1页,我可以突然看到当前项目数组长度为99而不是100.我尝试使用它,但我无法让它工作:/

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

1 个答案:

答案 0 :(得分:2)

我想,你不需要这个。

..... some steps.........
while (@iv<= @rcnt)
Begin
CREATE TABLE #MathLogicTable 
(
IDNUM INTEGER IDENTITY(1,1),
ATTRIBUTENAME VARCHAR(256),
INPUTVALUES DECIMAL(15,3)
)

INSERT INTO #MathLogicTable
      SELECT  statements..................

if (not exists (select 1 from #MathLogicTable))
BEGIN
set @iv=@iv+1 (I need this step to go back to the start of the loop...if the condition satisfies)
END
------------------------------------------------------------
select............
update........
N Steps.........
-------------------------------------------------------------
End  

否则你需要为这样的长度实现// remove the items items.splice((this.currentPage*50 -50), 50)

0

最好的事情是,像这样一步完成:

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