如何将javascript数组减少一半?

时间:2015-03-11 07:07:51

标签: javascript arrays json crossfilter

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

3 个答案:

答案 0 :(得分:2)

减少或过滤将适用于此。

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

array.filter(function(item, index) { return index % 2; })

答案 1 :(得分:1)

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

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

var array = [1,2,3,4,5,6,7,8,9,10]

array.filter(
    function (d,indx) { 
        return indx%2 != 1
    }
)

答案 2 :(得分:0)

您可以使用数组的过滤功能

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