静态处理相关
filter 数据过滤
具体用法见示例:
import { DataView } from '@antv/data-set';
const data = [
{ year: 1990, sales: 200 },
{ year: 1992, sales: 100 },
{ year: 1994, sales: 120 },
{ year: 1995, sales: 85 },
];
const dv = new DataView().source(data);
dv.transform({
type: 'filter',
callback(row) {
return row.sales < 100;
},
});
console.log(dv.rows); // [ { year: 1995, sales: 85 } ]
map 数据加工
具体用法见示例:
const data = [
{ x: 'a', y: 1 },
{ x: 'b', y: 11 },
{ x: 'c', y: 21 },
];
const dv = new DataView().source(data);
dv.transform({
type: 'map',
callback(row) {
row.z = 'z'; // 为每条记录新添加一个 z 字段
return row;
},
});
console.log(dv.rows);
/*
[
{ x: 'a', y: 1, z: 'z' },
{ x: 'b', y: 11, z: 'z' },
{ x: 'c', y: 21, z: 'z' }
]
*/
pick 字段过滤
具体用法见示例:
const data = [
{ x: 1, y: 11 },
{ x: 2, y: 12 },
{ x: 3, y: 13 },
{ x: 4, y: 14 },
{ x: 5, y: 15 },
];
const dv = new DataView().source(data);
dv.transform({
type: 'pick',
fields: ['x'],
});
console.log(dv.rows);
/*
[
{ x: 1 },
{ x: 2 },
{ x: 3 },
{ x: 4 },
{ x: 5 }
]
*/
rename 字段重命名
alias: rename-fields
具体用法见示例:
const data = [{ a: 1, b: 2 }];
const dv = new DataView().source(data);
dv.transform({
type: 'rename',
map: {
a: 'x',
b: 'y',
},
});
console.log(dv.rows); // [ { x: 1, y: 2 } ]
reverse 逆序排列
具体用法见示例:
const data = [
{ x: 1, y: 1 },
{ x: 2, y: 2 },
{ x: 3, y: 3 },
];
const dv = new DataView().source(data);
dv.transform({
type: 'reverse',
});
console.log(dv.rows);
/*
[
{ x: 3, y: 3 },
{ x: 2, y: 2 },
{ x: 1, y: 1 }
]
*/
sort 数据排序
具体用法见示例:
dv.transform({
type: 'sort',
callback(a, b) {
// 排序依据,和原生 js 的排序 callback 一致
return a.year - b.year;
},
});
sort-by 按字段排序
alias: sortBy
具体用法见示例:
dv.transform({
type: 'sort-by',
fields: ['year'], // 根据指定的字段集进行排序,与lodash的sortBy行为一致
order: 'DESC', // 默认为 ASC,DESC 则为逆序
});
subset 获取子集
具体用法见示例:
dv.transform({
type: 'subset',
startRowIndex: 1, // 保留行的起始索引
endRowIndex: 2, // 保留行的结束索引
fields: ['year'], // 保留字段集
});
partition 数据分组
alias: group | groups
具体用法见示例:
dv.transform({
type: 'partition',
groupBy: ['year'], // 以year字段进行分组
orderBy: ['month'], // 以month字段进行排序
});