JS将数组或对象转换成数组列表展示

JS将数组或者对象转换成数组格式内容

转换成key value的形式
例如:数组

[
{
“ent_id”: “120000\u0001317e0924fae5ca5fb740598728c92f9d\u00012019070115114700003682”,
“ent_type”: 1
}
]
例如:对象
{ “type”: “1”, “entmarks”: [ { “companyName”: “上海市国有资产监督管理委员会”, “creditCode”: “91440300192181490G”, “regNo”: “123456”, “frequencyType”: “1” } ]}

通过最开始判断类型:
判断是对象还是Objec或者其他

typeObj(obj) {
            var type = Object.prototype.toString.call(obj)
            if (type == '[object Array]') {
                return Array
            } else if (type == '[object Object]') {
                return Object
            } else {
                return 'Other'
            }
 },

产生随机ID

     GetRandomNum(Min, Max) {
            var Range = Max - Min
            var Rand = Math.random()
            return Min + Math.round(Rand * Range)
        },

编写处理数组或者对象的方法

 jsonAction(source, value, parentId, type) {
            for (var key in source) {
                let id = new Date().getTime() + this.GetRandomNum(1, 999999)
                let isTypeArray = this.typeObj(source) === Array ? true : false
                if (source[key]) {
                    if (this.typeObj(source[key]) === Object) {
                        type = Object
                    } else if (this.typeObj(source[key]) === Array) {
                        if (this.typeObj(source[key][0]) === Object) {
                            type = Array
                        } else {
                            let valueString = ''
                            source[key].map((item, index) => {
                                if (index < source[key].length - 1) {
                                    valueString = valueString + item + ','
                                } else {
                                    valueString = valueString + item
                                }
                            })
                            source[key] = valueString
                            type = String
                            isTypeArray=true
                        }
                    } else {
                        type = String
                    }
                } else {
                    type = String
                }
                let newRow = {
                    paramKey: key,
                    paramNotnull: 1,
                    id: id,
                    lists: [],
                }
                value.push(newRow)
                if (type === Array) {
                      parentId = parentId + 1
                      let sourceRecord = []
                      if (source[key].length > 0) {
                        if (this.typeObj(source[key][0]) === Object) {
                          let objData = {}
                          jsonMerge(source[key], objData)
                          sourceRecord = objData
                        }
                      } else {
                        sourceRecord = source[key]
                      }
                      this.jsonAction(sourceRecord, newRow.lists, newRow.paramType, type)
                    }
                if (type === Object) {
                    parentId = parentId + 1
                    this.jsonAction(source[key], newRow.lists, newRow.paramType, type)
                }
            }
        },

导入之前
在这里插入图片描述

转换之后的效果图如下:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shero.李建业

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值