Jquery for循环中的控制元素/。每个

Jquery for循环中的控制元素/。每个,jquery,for-loop,each,Jquery,For Loop,Each,在jQuery中,检索了许多元素后,我使用.each循环遍历它们,然后将它们吐出到画布上。但是,我需要控制分组中的元素,这样在100个元素中,10个元素将获得某个值,另外10个元素将获得一组不同的值,依此类推 据我所知,我无法在每个循环中保持这种控制水平。没有函数说,对于检索到的第一个x数量的元素,执行此操作;剩下的,做点别的 我应该如何着手控制这些元素 一些代码示例: function handleData(item) { var items = jQuery.parseJSON(it

在jQuery中,检索了许多元素后,我使用.each循环遍历它们,然后将它们吐出到画布上。但是,我需要控制分组中的元素,这样在100个元素中,10个元素将获得某个值,另外10个元素将获得一组不同的值,依此类推

据我所知,我无法在每个循环中保持这种控制水平。没有函数说,对于检索到的第一个x数量的元素,执行此操作;剩下的,做点别的

我应该如何着手控制这些元素

一些代码示例:

function handleData(item) {
    var items = jQuery.parseJSON(item);

    var id = items[0].id;
    var something = items[0].something;

    $.each(items, function(key, value) {

        variableHolder[$counter-1] = value.id;
        variableHolder["intellect"] = value.intellect;

        my_obj[$counter] = example.library.text({

value: "something",
example: "one"

});

我需要控制的是$counter变量。我想分批运行。计数器中的前20个元素获取一种类型的值,依此类推。

您可以使用这样的分块函数(代码段中的解释)

//分块函数
//获取块的数组和大小
//缩小阵列。
//如果索引+1模数块的大小为零,则reducer函数将分块
//如果是,则使用slice推送数组的块。
//如果不是,则使用短路和(&&)来计算它是否是阵列的末端
//如果它是数组的结尾,我们将剩下的作为它自己的块推送
//始终返回累积数组。
让chunk=(arr,chunk=1)=>arr.reduce((acc,value,index,oArr,i=index+1,s=oArr.slice.bind(oArr),len=oArr.length)=>{
(i%chunk==0)?acc.push(s(i-chunk,i)):(i===len)和acc.push(s(i-(i%chunk,len));
返回acc;
}, [] );
//抓取所有元素并将它们转换为一个数组
让元素=数组.from($(“.random”);
//将元素分块到10个数组中,剩余的将转储到最后一个数组中。
//注销每个阵列。
chunk(元素,10).forEach((arr)=>console.log(arr))

1.
12
3.
45
6.
77
88
99
1.
12
3.
45
6.
77
88
99
000
1.
12
3.
45
6.
77
88
99

000
您可以使用
slice()
method(Ref.)方法获取要循环的元素子集,以执行所需的任何操作。这通常会在外部或之前完成。

请添加您迄今为止尝试过的代码使用
slice(0,10)
获取元素子集。我不知道如何在迭代变量的每个中使用slice。如果我错了,也许你可以举个例子?看我的更新。你能给我们一个更好的例子吗?一个有一些虚拟元素来展示这个问题的是wunderbar,你不会在一个单独的文件中使用它。在执行each之前,您可以使用它来控制正在循环的内容
let chunk = ( arr, chunk = 1 ) => arr.reduce( ( acc, value, index, oArr, i = index + 1, s = oArr.slice.bind( oArr ), len = oArr.length ) => {
  ( i % chunk === 0 ) ? acc.push( s( i - chunk, i ) ): ( i === len ) && acc.push( s( i - ( i % chunk ), len ) );
  return acc;
}, [] );

chunk(array, chunk_size);