javascript从json结果创建一个新数组

时间:2014-01-17 13:11:00

标签: javascript arrays for-loop

这可能是一个简单的解决方案,但我似乎无法让它工作:/ 我想通过json / api调用收集的结果创建一个新的“响应”。

jsonResponse = [
     {"_id":"1","desc":"test desc","title":"Title 1"},
     {"_id":"2","title":"Title 2","desc":"desc 2"}
    ];

我需要从中创建一个看起来像这样的新数组;

var newResponse = [ 
  { "heading" : "Title 1", "summary" : "test desc"},
  { "heading" : "Title 2", "summary" : "desc 2"}

 ];

剥离_id并更改“密钥”。我该怎么做呢?

2 个答案:

答案 0 :(得分:8)

Array.prototype.map函数可以创造奇迹:

var newResponse = jsonResponse.map(function(item){
  return { heading : item.title, summary : item.desc };
});

答案 1 :(得分:4)

使用Array.prototype.map是一个很好的解决方案,但如果您想支持旧浏览器,可以使用map polyfill,或者执行此操作:

var newData = function () {
    var myArray = [];
    for (var i = 0; i < JSON.length; i++) {
        var self = JSON[i];
        myArray.push({
            heading: self.title,
            summary: self.desc
        });
    }
    return myArray;
};

// output
newData();

这是我的jsFiddle