我得到了一个不知道有多少数据的数组。 但是我只有一个预定义的数据量要显示/存储。 在JavaScript中如何取出初始数组中每个第n个元素并将其缩小?
例如:我得到一个大小为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;
});
}
当delta=0.2时,结果总是为0,但是对于其他一些delta(如0.3),它可以正常工作。当delta=0.4时,也可以工作,但是每隔一个元素会被取走。我该如何解决这个问题?
n
?什么是k
?什么是delta
?什么是oldArr
? - Orioldelta = size / n
怎么样? - Felix KlingsomeInt%0.2 == 0
始终成立。我认为你想要someInt%(1/0.2)
,即someInt%5
。 - James1%0.2
的结果是0.19999999999999996
,因为浮点数运算存在问题。 - Oriol1%0.25
可以工作(因为我猜测0.25可以在二进制中被准确表示),使用JS上的非整数操作符可能是个坏主意。 - James