javascript - JS 对象数组分页

标签 javascript pagination

我需要一些帮助来按 5 操作/分页 JS 数组对象:

var musicItems = [
    ["assets/audio/1.wav"],
    ["assets/audio/2.wav"],
    ["assets/audio/3.wav"],
    ["assets/audio/4.wav"],
    ["assets/audio/5.wav"],
    ["assets/audio/6.wav"],
    ["assets/audio/7.wav"],
    ["assets/audio/8.wav"],
];

我想知道JS中集合的数量(2)以及哪些元素属于哪个集合(set1->1-5,set2->6-8)。感谢任何帮助。

编辑 我想做类似 Split array into chunks 的事情

但正如你所看到的,我的数组是不同的。

最佳答案

这只是一个简单的演示,说明如何使用取模运算符%实现此目的。将会有更高效、更小的解决方案。

var musicItems = [
    ["assets/audio/1.wav"],
    ["assets/audio/2.wav"],
    ["assets/audio/3.wav"],
    ["assets/audio/4.wav"],
    ["assets/audio/5.wav"],
    ["assets/audio/6.wav"],
    ["assets/audio/7.wav"],
    ["assets/audio/8.wav"],
];

var sets = new Object();
var set = new Array();
var setCounter = 0;

for(var i = 0; i < musicItems.length; i++) {
    set.push(musicItems[i]);

    if((i + 1) % 5 == 0 || (i + 1) >= musicItems.length) {
        setCounter++;
        sets['set' + setCounter] = set;
        set = new Array();
    }
}

console.log(sets['set1']);
console.log(sets['set2']);

基本上,它的作用是迭代 musicItems,以 % 5 为模,我们检查当前项目是否可以被 5 整除而无需休息,因此我们知道集合是完整的,因为我们收集了 5 个项目。然后,我们将该集合添加到整个集合对象中,以便稍后将其用作字典(如“set1”、“set2”等所希望的那样),并清除当前集合,以用接下来的 n-5 个项目填充它。

关于javascript - JS 对象数组分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28841721/

相关文章:

ios - 使用 Swift 进行 Firebase Firestore 分页

javascript - jQuery 表格分页 PHP

jquery - jqGrid 阻止寻呼机导航?

php - Laravel 5.2 分页

javascript - 在javascript中输入一个正斜杠

javascript - 在 Web 应用程序中解析和显示 JSON 数据

javascript - 图像未使用本地主机加载到 NodeJS 服务器上

javascript - 在Javascript中调用匿名函数中的函数时如何使用 "this"关键字?

javascript - 如何间接使用ContentScripts中网页定义的函数?

ruby-on-rails - 使用 kaminari 对带有哈希参数的链接进行分页