3

我正在尝试从现有数组的有限值中创建一个新数组。在下面的示例中LargeArray包含许多属性——年份、书籍、gdp 和控制。假设我想创建一个只包含年份和 gdp 的新数组。

var LargeArray = [
    {year:1234, books:1200, gdp:1200, control:1200}, 
    {year:1235, books:1201, gdp:1200, control:1200}, 
    {year:1236, books:1202, gdp:1200, control:1200}
];

我试图获得的新数组如下所示:

var NewArray = [
    {year:1234, gdp:1200},
    {year:1235, gdp:1200},
    {year:1236, gdp:1200}
];
4

2 回答 2

4

使用$.map()

var LargeArray = [{year:1234, books:1200, gdp:1200, control:1200}, {year:1235, books:1201, gdp:1200, control:1200}, {year:1236, books:1202, gdp:1200, control:1200}, {year:1237, books:1203, gdp:1200, control:1200}, {year:1238, books:1204, gdp:1200, control:1200}];
var NewArray = $.map(LargeArray, function (value) {
    return {
        year: value.year,
        gdp: value.gdp
    }
})

演示:小提琴

于 2013-09-04T05:04:52.660 回答
1

使用Array.prototype.map

var newArray = largeArray.map(function(obj) {
  return { year: obj.year, gdp: obj.gdp };
});

注意:Array.prototype.map是最近添加的。使用 MDN 的 shim 来支持旧版浏览器。

jsFiddle 演示

于 2013-09-04T05:21:26.230 回答