处理Json数据并将其传递给对象以供进一步使用

时间:2016-10-12 03:19:17

标签: javascript arrays node.js

例如,我有一些JSON数据,如下所示( JSON数据只是一个例子,我只是想给出一些假的,化妆和错误的格式JSON作为例子

 cata :[{
       name:test1,
       data:['abc1, abc2'  , 'abc3,abc4']
      }
        name:test2,
       data:['abc5, abc6'  , 'abc7,abc8']
    }]

确实我需要将它渲染到前端,因此我创建了一个新对象并尝试将数据推入其中

var name = "";
var key= [];
for(var i=0;i<2;i++){
    name .push(cata[i].name)
    key.push(cata[i].data.join(' + '));
}
var rehandle = {
     name : name,
     key : key
  }

以上就是我现在如何做,哪些没有提供所需的结果,我想知道如何恢复它以便我可以改变格式

 ['abc5, abc6'  , 'abc7,abc8']

abc5+abc6 , abc7+abc8

问题的更新版本:

我想我最好一步一步解释:

  1. 我有一些原始数据

  2. 我在每组数据中都有一行“数据” (例如:数据:['abc1,abc2','abc3,abc4']

  3. 我想将其格式更改为 abc1 + abc2,abc3 + abc4 并将其存储到另一个变量

  4. 我会将变量商店 abc1 + abc2,abc3 + abc4 传递给对象

  5. 5.在一张桌子中逐一展示

    更新2 我看过@pill的答案,我能够呈现像

    这样的数据
       for(var i=0;i<cata.length;i++){
                      var trythis = trythis + '<td>'+name[i]+'</td>' +                '<td>'+data[i]+'</td>'
                    }
    

1 个答案:

答案 0 :(得分:1)

格式化数据
  

['abc5, abc6' , 'abc7,abc8']

  

abc5 + abc6,abc7 + abc8

你只需使用

data.map(k => k.split(/,\s*/).join('+')).join(' , ')

或ES5版本

data.map(function(k) {
    return k.split(/,\s*/).join('+');
}).join(' , ');

例如......

&#13;
&#13;
var cata = [{"name":"test1","data":["abc1, abc2","abc3,abc4"]},{"name":"test2","data":["abc5, abc6","abc7,abc8"]}];

var rehandle = cata.reduce(function(o, d) {
  o.name.push(d.name);
  o.key.push(d.data.map(function(k) {
    return k.split(/,\s*/).join('+');
  }).join(' , '));
  return o;
}, {
  name: [],
  key: []
});

console.log('rehandle:', rehandle);
&#13;
&#13;
&#13;

请注意,我必须修复您的数据格式