JavaScript前端常用的构造数据的方式

一、JavaScript常用的构造数据的方式

1、JavaScript返回{name:xxx,value:xxx}的数组

// data传入的数据
//二维数组:  ['SRR123456', '60.51', '20.12', '8']
// .... 
// ['SRR123457', '60.51', '20.12', '8']
var dataResult = function (data) {
    // 定义一个空数组
    let list = [];
    // 对二维数组按序号遍历(0,1,2.....n)
    Object.keys(data).forEach(function (e) { 
        // 再定义一个空数组
        var res = [];
        // 获取序号为0或..n的这一列 ['SRR123456', '60.51', '20.12', '8']
        var group = data[e];
        // 如果存在
        if (group) {
            // 向res数组向数组的末尾添加多个列表元素
            res.push({
                name: group[0],
                // 将String类型的数据转换成Int类型
                value: Number(group[3]),
            });
            // 结果:{name:'SRR123456',value:8}
            list.push(res);
        }
    });
   return list;
 };

结果格式

{name:'SRR123456',value:8}
.....

2、JavaScript返回map类型的数组

// data传入的数据
//二维数组:  ['SRR123456', '60.51', '20.12', '8']
// .... 
// ['SRR123457', '60.51', '20.12', '8']
var mapResult = function (data) {
   // 定义一个空数组
   let list = [];
    // 对二维数组按序号遍历(0,1,2.....n)
   Object.keys(data).forEach(function (e) { 
        // 再定义一个空数组
       let depth = [];
       // 新建一个map
       var map = new Map();
       // 获取序号为0或..n的这一列 ['SRR123456', '60.51', '20.12', '8']
       var group = data[e];
       // 如果存在
       if (group) {
           // 先将String类型转换成Double类型,再添加到数组里
           depth[0] = parseFloat(group[1]);
           depth[1] = parseFloat(group[2]);
       }
       // 向map里添加数据
       map.set(group[0], depth);
       //
       list.push(map);
   });
  return list;
};

3、更复杂的多重数据处理

// 结合上面两个代码
var convertData = function (getData) {
     var data = dataResult(getData);
     var map = mapResult(getData);
     var res = [];
     Object.keys(data).forEach(function (e) {
         let value = data[e];
         Object.keys(value).forEach(function (e) {
             let key = value[e].name;
             let val = value[e].value;
             Object.keys(map).forEach(function (e) {
                 var geo = map[e].get(key);
                 if (geo) {
                     res.push({
                        name: key,
                        value: geo.concat(val)
                      });
                 }
            });
         })
     })
return res;
};

未完待续

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

熊凯瑞

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

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

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

打赏作者

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

抵扣说明:

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

余额充值