Javascript – 在另一个数组中插入数组,但拼接不符合预期。

我试图用Javascript创建一个Cache Hashtable。

通过执行 cache.splice(0,0, ...dataPage); 我从第一页开始插入我的数据,直到dataPage.lengthposition。

假设我的 dataPage 大小总是 10

我的缓存数组应该是这样的 [0: {..}, 1: {..} ..... 9: {...}]

之后,假设我想加载第5页的数据,我在执行 cache.splice(40,0, ...data);

我希望我的数组看起来像这样。[[0: {..}, 1: {..} ..... 9: {...}, 40: {...}, 41:{...} ... 49{...}]

但它看起来像 [[0: {..}, 1: {..} ..... 9: {...}, 10: {...}, 11:{...} ... 12{...}]

任何想法,我可以实现我的预期结果吗?

解决方案:

cache.splice(40,0, ...data) 意思是,你 ...data 将被插入到你的第40位的 cache.

如果您的 cache 没有40个元素,就不能在这个位置插入。

也许你应该先定义一个 cache 与所需数量的位置,然后将您的数据拼接到它。

编辑当然你可以动态地做到这一点。像这样(我没有测试,但也许你明白了)。

var cache= [];
var insertion_pos = 40;
var dataPage = [0: {..}, 1: {..} ..... 9: {...}, 10: {...}, 11:{...} ... 12:{...}]

for(var i=0; i < insertion_pos; i++) {
   cache.push(i);
}

cache.splice(insertion_pos, 0, ...dataPage)

本文来自投稿,不代表运维实战侠立场,如若转载,请注明出处:https://www.shizhanxia.com/5271.html

(0)
上一篇 2022年6月29日 下午4:54
下一篇 2022年6月29日 下午4:54

相关推荐

发表评论

登录后才能评论