首页 > Javascript Json 数据提取并且转换问题

Javascript Json 数据提取并且转换问题

有原始JSON数据如下:

"basic_data": {
  "2016-03-24": {
    "view_total": 17,
    "share_total": 0,
    "like_total": 1,
    "post_total": 2,
    "favorite_total": 1,
    "comment_total": 1
  },
  "2016-03-25": {
    "view_total": 10,
    "share_total": 0,
    "like_total": 0,
    "post_total": 58,
    "favorite_total": 1,
    "comment_total": 0
  },
  "2016-03-26": {
    "view_total": 0,
    "share_total": 0,
    "like_total": 0,
    "post_total": 0,
    "favorite_total": 0,
    "comment_total": 0
  },
  "2016-03-27": {
    "view_total": 0,
    "share_total": 0,
    "like_total": 0,
    "post_total": 0,
    "favorite_total": 0,
    "comment_total": 0
  },
  "2016-03-28": {
    "view_total": 0,
    "share_total": 0,
    "like_total": 0,
    "post_total": 0,
    "favorite_total": 0,
    "comment_total": 0
  },
  "2016-03-29": {
    "view_total": 11,
    "share_total": 0,
    "like_total": 0,
    "post_total": 42,
    "favorite_total": 0,
    "comment_total": 0
  },
  "2016-03-30": {
    "view_total": 4,
    "share_total": 0,
    "like_total": 0,
    "post_total": 3,
    "favorite_total": 0,
    "comment_total": 0
  }
}

如何使用原生或者lodash等工具提取如下数据

{
  view_total: [17, 10, 0, 0, 0, 11, 4]
}

var viewTotalObj={};
for(var obj in basic_data){
  viewTotalObj.view_total.push(obj.view_total);
}

lodash版:

var data = _.reduce(basic_data, (result, value) => {
  result.view_total.push(value.view_total);
  return result;
}, {
  view_total: []
});

js版:

var data = {
  view_total: Object.keys(basic_data).map(v => {
    return basic_data[v].view_total;
  })
};

console.log(data);

const result = {
  view_total: Object.keys(data).map(entry => data[entry].view_total)`
};

data === basic_data


var basic_data = {
    "2016-03-24": {
        "view_total": 17,
        "share_total": 0,
        "like_total": 1,
        "post_total": 2,
        "favorite_total": 1,
        "comment_total": 1
    },
    "2016-03-25": {
        "view_total": 10,
        "share_total": 0,
        "like_total": 0,
        "post_total": 58,
        "favorite_total": 1,
        "comment_total": 0
    },
    "2016-03-26": {
        "view_total": 0,
        "share_total": 0,
        "like_total": 0,
        "post_total": 0,
        "favorite_total": 0,
        "comment_total": 0
    },
    "2016-03-27": {
        "view_total": 0,
        "share_total": 0,
        "like_total": 0,
        "post_total": 0,
        "favorite_total": 0,
        "comment_total": 0
    },
    "2016-03-28": {
        "view_total": 0,
        "share_total": 0,
        "like_total": 0,
        "post_total": 0,
        "favorite_total": 0,
        "comment_total": 0
    },
    "2016-03-29": {
        "view_total": 11,
        "share_total": 0,
        "like_total": 0,
        "post_total": 42,
        "favorite_total": 0,
        "comment_total": 0
    },
    "2016-03-30": {
        "view_total": 4,
        "share_total": 0,
        "like_total": 0,
        "post_total": 3,
        "favorite_total": 0,
        "comment_total": 0
    }
}

var viewTotals = Object.keys(basic_data).sort().map(function(key) {
    return basic_data[key].view_total;
});

var result = {
    view_total: viewTotals
};

var json = JSON.stringify(result);

console.log(json);
{"view_total":[17,10,0,0,0,11,4]}
【热门文章】
【热门文章】