如何将一个 JavaScript 数组减少一半

How to reduce a javascript array into half?

本文关键字:JavaScript 一个 数组 少一半      更新时间:2023-09-26

我有一个包含 365 个对象(日期和值)的数组,我想将其减少一半以加快绘图速度。必须进行缩减,以便我得到数组中的所有其他点。因此,如果第一个元素用于 1 月 1 日,则第二个元素将用于 1 月 3 日而不是 1 月 2 日。我可以遍历数组,如果数字是奇数,我可以将其添加到新数组中,反之亦然。但是有没有更好/更快的方法来实现这一目标?我听说交叉过滤器.js是为这样的事情而设计的,但无法弄清楚如何在这种情况下使用它。有什么建议吗?

reduce或filter将适用于此。

array.reduce(function(memo, item, index) { 
  index % 2 && memo.push(item); 
  return memo; 
}, [])
array.filter(function(item, index) { return index % 2; })

您要查找的是Array.filter . filter可用于从数组中过滤掉所需的值,但它将导致长度小于或等于原始数组的数组。

下面的代码返回数组中的所有奇数元素:

var array = [1,2,3,4,5,6,7,8,9,10]
array.filter(
    function (d,indx) { 
        return indx%2 != 1
    }
)

可以使用数组的过滤函数

var numbers = [1, 2, 3, 4, 5];
var odds = numbers.filter(function(index, item) {
    return index % 2 == 1;
});