3.0.0 • Published 4 years ago

simplepivot v3.0.0

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

simplePivot

数据透视

不进行数据的汇总计算

Install

npm install --save simplepivot

Usage

declare function simplePivot(
	data: PData,
	options?: PivotOptions
): {
	columns: string[];
	list: any[][];
};

types

interface PData {
	columns: Array<string>;
	list: any[][];
	[x: string]: any;
}

interface PivotOptions {
	columns: Array<string>;
	values: string[];
	delimiter?: string;
}

Options

columns

透视列

import { simplePivot, E_VALUE } from "simplepivot";

simplePivot(data, {
    ...
	columns: ["道具名称", E_VALUE, "道具类型"],
});

注:常量E_VALUE的值为%E_VALUE%,data.columns 中避免出现%E_VALUE%,否则将出现不可预测问题。

values

透视值

delimiter

默认: _ 表头分隔符

使用

import { simplePivot, E_VALUE } from "simplepivot";

const dataset = {
    columns: ['性别', '人数'],
    list: [
        ['男', '1584'],
        ['女', '1514'],
    ]
};

const pivotData = simplePivot(dataset, {
    columns: ['性别'],
    values: ['人数']
});

console.log(pivotData);

const dataset1 = {
    columns: ['日期', '类型', '数值'],
    list: [
        ['20170809', 'A', 1],
        ['20170809', 'B', 2],
        ['20170808', 'A', 3],
        ['20170808', 'B', 4],
        ['20170808', 'C', 5],
        ['20170807', 'A', 6],
        ['20170807', 'B', 7],
    ]
};

console.log('====================')

const pivotData1 = simplePivot(dataset1, {
    columns: ['类型'],
    values: ['数值']
});

console.log(pivotData1);

其他

/**
 * 数据透视效果
 * ============================================================================================
 * metadata
 *		columns
 *		 		[日期, 游戏, 渠道, 注册数, 付费数]
 *		list
 *			[
 *				//20170809
 * 				['20170809', '游戏A', '小米', 100, 100],
 *				['20170809', '游戏A', '华为', 100, 100],
 *				['20170809', '游戏B', '华为', 100, 100],
 *				//20170808
 *				['20170808', '游戏A', '华为', 100, 100],
 *				['20170808', '游戏B', '小米', 100, 100],
 *				['20170808', '游戏B', '华为', 100, 100],
 *				//20170807
 *				['20170807', '游戏A', '小米', 100, 100],
 *			]
 *		一,透视参数:
 *			行: 日期, 渠道
 *          列: 游戏
 *          值: 注册数, 付费数
 *
 * 		效果
 *			日期      渠道   游戏A_注册数  游戏A_付费数 	游戏B_注册数    游戏B_付费数
 * 			-----------------------------------------------------------------------------------
 *			20170809   小米   100             100
 *			-----------------------------------------------------------------------------------
 *			20170809   华为    100			   100              100	              100
 *			-----------------------------------------------------------------------------------
 *			20170808   华为    100			   100              100	              100
 *			-----------------------------------------------------------------------------------
 *			20170808   小米   			                        100	              100
 *			-----------------------------------------------------------------------------------
 *			20170807   小米   100			   100
 *			-----------------------------------------------------------------------------------
 *
  *		二,透视参数:
 *			行: 日期
 *          列: 游戏, 渠道
 *          值: 注册数, 付费数
 *
 * 		效果
 *			日期      游戏A_小米_注册数  游戏A_小米_付费数  游戏A_华为_注册数  游戏A_华为_付费数  游戏B_小米_注册数  游戏B_小米_付费数  游戏B_华为_注册数  华为B_小米_付费数
 * 			---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 *			20170809   100                   100                  100                  100                                                            100                  100
 *			---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 *			20170808                                              100                  100                  100                   100                 100                  100
 *			---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 *			20170807   100			         100
 *			---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 *
 * ============================================================================================
 *
 */
3.0.0

4 years ago

2.1.0

5 years ago

2.0.0

5 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago