gpt4 book ai didi

Javascript:取数组的第n个元素

转载 作者:可可西里 更新时间:2023-11-01 01:27:01 25 4
gpt4 key购买 nike

我得到一个数据数量未知的数组。但我只有预定义数量的数据要显示/存储。我如何获取初始数组的每个第 n 个元素并在 JavaScript 中减少它?

例如:我得到一个大小为 10000 的数组,但只能显示 n=2k 个元素。

我是这样试过的:delta= Math.round(10*n/size)/10 = 0.2 -> 取初始数组的每 5 个元素。

for (i = 0; i < oldArr.length; i++) {
arr[i] = oldArr[i].filter(function (value, index, ar) {
if (index % delta != 0) return false;
return true;
});
}

对于 0.2,它始终为 0,但对于其他一些增量 (0.3),它是有效的。与 delta=0.4 相同,我可以工作,但是每隔一个 Element 都会被带走。我该怎么做才能让它发挥作用?

最佳答案

也许一种解决方案:

避免使用过滤器,因为您不想循环超过 10 000 个元素!只需使用 for 循环直接访问它们!

 
var log = function(val){document.body.innerHTML+='<div></pre>'+val+'</pre></div>'}

var oldArr = [0,1,2,3,4,5,6,7,8,9,10]
var arr = [];

var maxVal = 5;

var delta = Math.floor( oldArr.length / maxVal );

// avoid filter because you don't want
// to loop over 10000 elements !
// just access them directly with a for loop !
// |
// V
for (i = 0; i < oldArr.length; i=i+delta) {
arr.push(oldArr[i]);
}


log('delta : ' + delta + ' length = ' + oldArr.length) ;
log(arr);

关于Javascript:取数组的第n个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33482812/

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