静态处理相关

filter 数据过滤

具体用法见示例:

  1. import { DataView } from '@antv/data-set';
  2. const data = [
  3. { year: 1990, sales: 200 },
  4. { year: 1992, sales: 100 },
  5. { year: 1994, sales: 120 },
  6. { year: 1995, sales: 85 },
  7. ];
  8. const dv = new DataView().source(data);
  9. dv.transform({
  10. type: 'filter',
  11. callback(row) {
  12. return row.sales < 100;
  13. },
  14. });
  15. console.log(dv.rows); // [ { year: 1995, sales: 85 } ]

map 数据加工

具体用法见示例:

  1. const data = [
  2. { x: 'a', y: 1 },
  3. { x: 'b', y: 11 },
  4. { x: 'c', y: 21 },
  5. ];
  6. const dv = new DataView().source(data);
  7. dv.transform({
  8. type: 'map',
  9. callback(row) {
  10. row.z = 'z'; // 为每条记录新添加一个 z 字段
  11. return row;
  12. },
  13. });
  14. console.log(dv.rows);
  15. /*
  16. [
  17. { x: 'a', y: 1, z: 'z' },
  18. { x: 'b', y: 11, z: 'z' },
  19. { x: 'c', y: 21, z: 'z' }
  20. ]
  21. */

pick 字段过滤

具体用法见示例:

  1. const data = [
  2. { x: 1, y: 11 },
  3. { x: 2, y: 12 },
  4. { x: 3, y: 13 },
  5. { x: 4, y: 14 },
  6. { x: 5, y: 15 },
  7. ];
  8. const dv = new DataView().source(data);
  9. dv.transform({
  10. type: 'pick',
  11. fields: ['x'],
  12. });
  13. console.log(dv.rows);
  14. /*
  15. [
  16. { x: 1 },
  17. { x: 2 },
  18. { x: 3 },
  19. { x: 4 },
  20. { x: 5 }
  21. ]
  22. */

rename 字段重命名

alias: rename-fields

具体用法见示例:

  1. const data = [{ a: 1, b: 2 }];
  2. const dv = new DataView().source(data);
  3. dv.transform({
  4. type: 'rename',
  5. map: {
  6. a: 'x',
  7. b: 'y',
  8. },
  9. });
  10. console.log(dv.rows); // [ { x: 1, y: 2 } ]

reverse 逆序排列

具体用法见示例:

  1. const data = [
  2. { x: 1, y: 1 },
  3. { x: 2, y: 2 },
  4. { x: 3, y: 3 },
  5. ];
  6. const dv = new DataView().source(data);
  7. dv.transform({
  8. type: 'reverse',
  9. });
  10. console.log(dv.rows);
  11. /*
  12. [
  13. { x: 3, y: 3 },
  14. { x: 2, y: 2 },
  15. { x: 1, y: 1 }
  16. ]
  17. */

sort 数据排序

具体用法见示例:

  1. dv.transform({
  2. type: 'sort',
  3. callback(a, b) {
  4. // 排序依据,和原生 js 的排序 callback 一致
  5. return a.year - b.year;
  6. },
  7. });

sort-by 按字段排序

alias: sortBy

具体用法见示例:

  1. dv.transform({
  2. type: 'sort-by',
  3. fields: ['year'], // 根据指定的字段集进行排序,与lodash的sortBy行为一致
  4. order: 'DESC', // 默认为 ASC,DESC 则为逆序
  5. });

subset 获取子集

具体用法见示例:

  1. dv.transform({
  2. type: 'subset',
  3. startRowIndex: 1, // 保留行的起始索引
  4. endRowIndex: 2, // 保留行的结束索引
  5. fields: ['year'], // 保留字段集
  6. });

partition 数据分组

alias: group | groups

具体用法见示例:

  1. dv.transform({
  2. type: 'partition',
  3. groupBy: ['year'], // 以year字段进行分组
  4. orderBy: ['month'], // 以month字段进行排序
  5. });