JSON转数组后,筛选分组并输出,判断键值键值是否存在补0

简介: JSON转数组后,筛选分组并输出,判断键值键值是否存在补0
var arr = [
{“category_name”: “60米”, “member_name”: “张三”, “value”: “90”},
{“category_name”: “60米”, “member_name”: “李四”, “value”: “80”},
{“category_name”: “3000米”, “member_name”: “张三”, “value”: “46”},
{“category_name”: “负重”, “member_name”: “王五”, “value”: “23”},
{“category_name”: “负重”, “member_name”: “马六”, “value”: “85”},
{“category_name”: “100米”, “member_name”: “张三”, “value”: “79”}
];


var NameData = ['张三', '李四', '王五', '马六'];
var projectData = ['60米', '3000米', '负重', '100米'];
/*JSON数据分组转化设置*/
function createTree(arr, keys) {
  function createObj(arr, arrORobj, keys, start) {
    for (let i = 0; i < arr.length; i++) {
      if (start >= keys.length) {
        let newArray = Array.isArray(arrORobj) ? arrORobj : []
        return newArray.concat(arr[i])
      }
      let curKey = keys[start]
      let curVal = arr[i][curKey]
      if (!curVal)continue
      let newObj = arrORobj[curVal] ? arrORobj[curVal] : {}
      arrORobj[curVal] = createObj([arr[i]], newObj, keys, start + 1)
    }
    return arrORobj
  }
  return createObj(arr, {}, keys, 0)
}
//按照名字先分组,后按照项目分类,组成新的数组;
var nv = createTree(arr, ['member_name', 'category_name']);
console.log(nv);
//document.write(JSON.stringify(nv));
//document.write("<hr>");
//读取名字;
//document.write(arr[0].member_name);
//document.write("<br>");
//读取转换数组的值;
//document.write(JSON.stringify(nv[1][1][0]['value']));
//document.write(JSON.stringify(nv[NameData[0]]['60米'][0]['value']));
//document.write(JSON.stringify(nv[NameData[0]]['3000米'][0]['value']));
//document.write(JSON.stringify(nv[NameData[0]]['100米'][0]['value']));
//document.write("<hr>");
//判断数据某键值是否存在;
/*
 function typeArr(newArr, key) {
 if (newArr.hasOwnProperty(key)) {
 return nv[NameData[0]][projectData[key]][0]['value'];
 } else {
 return '0';
 }
 }
 */
//console.log(JSON.stringify(nv[NameData[0]]['100米'][0]['value']).hasOwnProperty('100米'));
/*判断项目键名中是否为空或未定义*/
function typeArr(newArr, key) {
  if (typeof(newArr) == 'undefined' ? false : (newArr.length == 0 ? false : true)) {
    return JSON.stringify(nv[NameData[0]][projectData[key]][0]['value']);
  } else {
    return "0";
  }
}
var brr = [];
brr[0] = JSON.stringify(nv[NameData[0]][projectData[0]][0]['value']);
brr[1] = JSON.stringify(nv[NameData[0]][projectData[1]][0]['value']);
brr[2] = typeArr(JSON.stringify(nv[NameData[0]][projectData[2]]), 2);
brr[3] = JSON.stringify(nv[NameData[0]][projectData[3]][0]['value']);
document.write('[' + brr + ']');
相关文章
|
6月前
|
存储 JSON 前端开发
JSON数组的概念、语法和用法
JSON数组的概念、语法和用法
1196 3
|
6月前
|
JSON JavaScript 前端开发
前端 ex2json 用于 vue/react/js 将 xls、xlsx、csv 文件转成 json 数组
前端 ex2json 用于 vue/react/js 将 xls、xlsx、csv 文件转成 json 数组
161 0
|
3月前
|
JSON 前端开发 JavaScript
php中JSON或数组到formData的键值对转换
转换JSON或数组到formData格式的键值对并不复杂。PHP的 `json_decode()`与 `http_build_query()`是实现这一转换过程的关键函数。理解这个转换过程对于开发中处理各种AJAX请求时调整数据格式至关重要。这样,无论是处理来自客户端的JSON字符串,还是服务器端的数组数据,都能够灵活地转换为适合网络传输的格式,确保数据交换的顺畅和高效。
89 4
|
JSON 前端开发 Java
Springboot接收ajax提交JSON数组
Springboot接收ajax提交JSON数组
138 0
|
3月前
|
SQL JSON 关系型数据库
"SQL老司机大揭秘:如何在数据库中玩转数组、映射与JSON,解锁数据处理的无限可能,一场数据与技术的激情碰撞!"
【8月更文挑战第21天】SQL作为数据库语言,其能力不断进化,尤其是在处理复杂数据类型如数组、映射及JSON方面。例如,PostgreSQL自8.2版起支持数组类型,并提供`unnest()`和`array_agg()`等函数用于数组的操作。对于映射类型,虽然SQL标准未直接支持,但通过JSON数据类型间接实现了键值对的存储与查询。如在PostgreSQL中创建含JSONB类型的表,并使用`-&gt;&gt;`提取特定字段或`@&gt;`进行复杂条件筛选。掌握这些技巧对于高效管理现代数据至关重要,并预示着SQL在未来数据处理领域将持续扮演核心角色。
57 0
|
3月前
|
JSON JavaScript 数据格式
Jquery 将 JSON 列表的 某个属性值,添加到数组中,并判断一个值,在不在数据中
Jquery 将 JSON 列表的 某个属性值,添加到数组中,并判断一个值,在不在数据中
75 0
|
5月前
|
JSON 关系型数据库 MySQL
MySQL中GROUP_CONCAT与JSON_OBJECT、GROUP BY的巧妙结合:打造高效JSON数组汇总
MySQL中GROUP_CONCAT与JSON_OBJECT、GROUP BY的巧妙结合:打造高效JSON数组汇总
160 1
|
5月前
|
JSON 资源调度 Kubernetes
实时计算 Flink版操作报错合集之解析JSON数组时,遇到报错,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
5月前
|
JSON JavaScript 数据格式
1.js动态的往json数据添加新属性和值 2.JSON 和 JS 对象互转 3.对象转化为数组
1.js动态的往json数据添加新属性和值 2.JSON 和 JS 对象互转 3.对象转化为数组
53 0
|
6月前
|
存储 JSON DataWorks
DataWorks产品使用合集之DataWorks将 MongoDB 中的数组类型写入到 DataWorks 的单个字段时,表示为字符串格式而非 JSON 格式如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
77 3