Blame view

天文台pc/tianwentai-ui/node_modules/recharts/lib/util/getEveryNthWithCondition.js 994 Bytes
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  "use strict";
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  exports.getEveryNthWithCondition = getEveryNthWithCondition;
  /**
   * Given an array and a number N, return a new array which contains every nTh
   * element of the input array. For n below 1, an empty array is returned.
   * If isValid is provided, all candidates must suffice the condition, else undefined is returned.
   * @param {T[]} array An input array.
   * @param {integer} n A number
   * @param {Function} isValid A function to evaluate a candidate form the array
   * @returns {T[]} The result array of the same type as the input array.
   */
  function getEveryNthWithCondition(array, n, isValid) {
    if (n < 1) {
      return [];
    }
    if (n === 1 && isValid === undefined) {
      return array;
    }
    var result = [];
    for (var i = 0; i < array.length; i += n) {
      if (isValid === undefined || isValid(array[i]) === true) {
        result.push(array[i]);
      } else {
        return undefined;
      }
    }
    return result;
  }