gpt4 book ai didi

javascript - 如何通过递增或递减值从数组中获取批量数组值

转载 作者:行者123 更新时间:2023-12-02 16:02:22 24 4
gpt4 key购买 nike

我有一个数组,它包含一堆值。我想通过增加 count 数字的值或减少 count 的值来对数组进行切片

计数由nextprev按钮更新。当用户单击next 时,计数会增加,而当用户单击prev 按钮时,count 会减少。使用这个 wan 按我的批处理号切片数组值。

这是我的尝试:

var arr = [1,2,3,4,5,6,7,8,9];
var batch = 2;
var num = 2;
var total = arr.length;
var group = arr.slice(0, (batch % total));


var add = function (amount) {
num = (num + total - 1 + amount) % total + (2)
console.log(arr.slice((num-batch), (num % total)))
}

$('a').click(function (e) {
var num = e.target.className == 'prev' ? -1 : 1;
add(num);
})

console.log(group)

Live Demo

最佳答案

假设您总是在寻找batch大小的分组,并且想要环绕数组,您可以这样做。

var add = function (amount) {
num = ((num + batch * amount) % total + total) % total;

var out = arr.slice(num, num + batch);
if (out.length < batch) {
out = out.concat( arr.slice(0, batch - out.length ) );
}

console.log(out);
}

请注意,JavaScript % 不像大多数语言那样是模运算符,而是余数运算符。它不是将您放入范围 [0, m - 1],而是进入范围 [-m + 1, m - 1],同时保留符号(即 -6 % 5 = -1)。实现真模的一种简单方法是执行 ((n % m) + m) % m

关于javascript - 如何通过递增或递减值从数组中获取批量数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31085817/

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