What are the reduceAdd, reduceSum , reduceRemove functions in crossfilter? How should they be used?

前端 未结 2 708
渐次进展
渐次进展 2021-01-29 20:09

Can someone explain in simple terms how reduce function with its arguments reduceAdd, reduceSum, reduceRemove works in crossfilter

2条回答
  •  萌比男神i
    2021-01-29 21:00

    http://blog.rusty.io/2012/09/17/crossfilter-tutorial/

    var livingThings = crossfilter([
      // Fact data.
      { name: “Rusty”,  type: “human”, legs: 2 },
      { name: “Alex”,   type: “human”, legs: 2 },
      { name: “Lassie”, type: “dog”,   legs: 4 },
      { name: “Spot”,   type: “dog”,   legs: 4 },
      { name: “Polly”,  type: “bird”,  legs: 2 },
      { name: “Fiona”,  type: “plant”, legs: 0 }
    ]);
    

    For example, how many living things are in my house?

    To do this, we’ll call the groupAll convenience function, which selects all records into a single group, and then the reduceCount function, which creates a count of the records.

    // How many living things are in my house?
    var n = livingThings.groupAll().reduceCount().value();
    console.log("There are " + n + " living things in my house.") // 6
    

    Now let’s get a count of all the legs in my house. Again, we’ll use the groupAll function to get all records in a single group, but then we call the reduceSum function. This is going to sum values together. What values? Well, we want legs, so let’s pass a function that extracts and returns the number of legs from the fact.

    // How many total legs are in my house?
    var legs = livingThings.groupAll().reduceSum(function(fact) {
      return fact.legs;
    }).value()
    console.log("There are " + legs + " legs in my house.")
    

    reduceCount function creates a count of the records.
    reduceSum function is the sum values of these records.

提交回复
热议问题