纵表整理数据集合处理
时间:2019-10-30
本文章向大家介绍纵表整理数据集合处理,主要包括纵表整理数据集合处理使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
关于纵表,小小的说明一下:
就是后台对于无法确定属性名有多少,采用KEY,VALUE来代表属性名,最后添加的时候,可以随意添加数量和种类
比如:
var list = {
"code":"200",
"data":[
{
"type":"XZ",
"id":856,
"profileKey":"name",
"profileValue":"肖战",
},
{
"type":"XZ",
"id":854,
"profileKey":"age",
"profileValue":"18",
},
{
"type":'PXY',
"id":853,
"profileKey":"name",
"profileValue":"彭于晏",
},{
"type":"PXY",
"id":852,
"profileKey":"age",
"profileValue":"20",
}
],
"msg":"成功"
}
我想整理出来,每个人的特性都是唯一的,并且每个特性都是以KEY=VALUE的形式来,前端比较好直接取用;
function getCollection(callback) {
let data = list.data;
let allArr = [];
let allObj = {};
let initObj = {
type: data[0].type,
[data[0].profileKey]: data[0].profileValue
}
for(var i = 1; i < data.length; i ++){
let currItem = data[i-1], nextItem = data[i];
if (currItem.type === nextItem.type) {
allObj[currItem.type] = Object.assign(initObj, {
[nextItem.profileKey]: nextItem.profileValue
})
}else {
initObj = {
type: nextItem.type,
[nextItem.profileKey]: nextItem.profileValue
}
continue;
}
}
//获取list---数组形式
for (var key in allObj) {
allArr.push(allObj[key]);
}
callback(allObj,allArr);
}
//调用方法
getCollection((resObj, resList) =>{
//使用数据
console.log(resObj);
console.log(resList)
})
// 对象形式 --resObj
{
PXY:{
age: "20"
name: "彭于晏"
type: "PXY"
},
XZ:{
age: "18"
name: "肖战"
type: "XZ"
}
}
//数组形式 --- resList
[
{
age: "20"
name: "彭于晏"
type: "PXY"
},{
age: "18"
name: "肖战"
type: "XZ"
}
]
原文地址:https://www.cnblogs.com/lulianlian/p/11763448.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 求水仙花数面试题 撸它
- 字典序???你是啥
- 【特征工程】时序特征挖掘的奇技淫巧
- 【Hive】Hive 的基本认识
- 《Nacos系列》之注册中心
- 《Nacos系列》之持久化
- 垃圾收集器详解及参数配置
- 《Nacos系列》之安装与启动
- 盘点 | Python自带的那些数据集
- 使用shuttle实现bytom上跨链资产交换
- (三)Mybatis-Plus代码生成器
- 【Code】关于 GCN,我有三种写法
- MySQL允许在唯一索引字段中添加多个NULL值
- [OHIF-Viewers]医疗数字阅片-医学影像-中间插播一下-es6-使用const加箭头函数声明函数相对于function声明函数有什么好处?
- 日志切割工具-Logrotate实现nginx日志切割