我有一个包含365个对象(日期和值)的数组,我想将其减少到一半以使绘图更快。必须进行减少,以便获得数组中的每个其他点。因此,如果第一个元素是1月1日,那么第二个元素将是1月3日而不是1月2日。我可以遍历数组,如果数字是奇数,我可以将它添加到新数组,反之亦然。但有没有更好/更快的方法来实现这一目标?我听说crossfilter.js是为这样的东西制作的,但是无法弄清楚如何在这种情况下使用它。有什么建议吗?
答案 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.filter
。 filter
可用于从数组中过滤掉所需的值,它将导致长度小于或等于原始数组的数组。
以下代码返回数组中的所有奇数元素:
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;
});