这可能是一个简单的解决方案,但我似乎无法让它工作:/ 我想通过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并更改“密钥”。我该怎么做呢?
答案 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