开发者社区> 问答> 正文

关于nodejs数组转json对象数组 问题

我想把一个有规律的数组转成json对象的数组呢,如下:
数组

[
    "3040131111",
    "小明",
    "1",
    "大学体育Ⅰ",
    "通识课",
    "2.00",
    "75",
    "总评成绩",
    "2.50",
    "A16603001A",
    "32.00",
    "3040133109",
    "小明",
    "1",
    "基础英语Ⅰ",
    "通识课",
    "4.00",
    "80",
    "总评成绩",
    "3.00",
    "A17001021A",
    "64.00"
]

转成这种

[
    {
        "学号": "3040111111",
        "姓名": "小明",
        "学期": "1",
        "课程": "大学体育Ⅰ",
        "类别": "通识课",
        "学分": "2.00",
        "成绩": "75",
        "成绩类型": "总评成绩",
        "绩点": "2.50",
        "课程彪悍": "A16603001A",
        "课时": “32.00”
    },
    {
        "学号": "3040111111",
        "姓名": "小明",
        "学期": "1",
        "课程": "大学体育Ⅰ",
        "类别": "通识课",
        "学分": "2.00",
        "成绩": "75",
        "成绩类型": "总评成绩",
        "绩点": "2.50",
        "课程彪悍": "A16603001A",
        "课时": “32.00”
    }
]

用什么方法去做呢?

展开
收起
爵霸 2016-03-05 11:05:00 5374 0
1 条回答
写回答
取消 提交回答
  • function array_chunk(input, size, preserve_keys) {
    
      var x, p = '',
        i = 0,
        c = -1,
        l = input.length || 0,
        n = [];
    
      if (size < 1) {
        return null;
      }
    
      if (Object.prototype.toString.call(input) === '[object Array]') {
        if (preserve_keys) {
          while (i < l) {
            (x = i % size) ? n[c][i] = input[i] : n[++c] = {}, n[c][i] = input[i];
            i++;
          }
        } else {
          while (i < l) {
            (x = i % size) ? n[c][x] = input[i] : n[++c] = [input[i]];
            i++;
          }
        }
      } else {
        if (preserve_keys) {
          for (p in input) {
            if (input.hasOwnProperty(p)) {
              (x = i % size) ? n[c][p] = input[p] : n[++c] = {}, n[c][p] = input[p];
              i++;
            }
          }
        } else {
          for (p in input) {
            if (input.hasOwnProperty(p)) {
              (x = i % size) ? n[c][x] = input[p] : n[++c] = [input[p]];
              i++;
            }
          }
        }
      }
      return n;
    }
    arr = [
        "3040131111",
        "小明",
        "1",
        "大学体育Ⅰ",
        "通识课",
        "2.00",
        "75",
        "总评成绩",
        "2.50",
        "A16603001A",
        "32.00",
        "3040133109",
        "小明",
        "1",
        "基础英语Ⅰ",
        "通识课",
        "4.00",
        "80",
        "总评成绩",
        "3.00",
        "A17001021A",
        "64.00"
    ];
    arr_chunk = array_chunk(arr,11).map(function(i){
    return {
    
            "学号": i[0],
            "姓名": i[1],
            "学期": i[2],
            "课程": i[3],
            "类别": i[4],
            "学分": i[5],
            "成绩": i[6],
            "成绩类型":i[7],
            "绩点": i[8],
            "课程彪悍": i[9],
            "课时": i[10]
    }
    });
    console.log(arr_chunk);
    2019-07-17 18:53:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
探究 Node.js 的服务端之路 立即下载
个推微服务实践 基于OpenResty 和Node.js 立即下载
沪江基于Node.js大规模应用实践 立即下载