过滤一组对象

时间:2016-09-20 05:23:24

标签: javascript node.js

我的数据如下:

[{address: '1300 BRYANT ST',
  block: '3903',
  cnn: '517000',
  latitude: '37.7690871267671',
  longitude: '-122.411527667132',
  received: '2016-05-06',
  x: '6009188.668',
  y: '2108146.472' }, {B...}, {C...}]

我想过滤数据,如下所示:

[{address: '1300 BRYANT ST',
  latitude: '37.7690871267671',
  longitude: '-122.411527667132'},
  ...]

如何使用JavaScript过滤此数据?

3 个答案:

答案 0 :(得分:4)

执行此操作的一种简单方法是使用array .map() method



var arr = [{address: '1300 BRYANT ST', block: '3903', cnn: '517000', latitude: '37.7690871267671', longitude: '-122.411527667132', received: '2016-05-06', x: '6009188.668', y: '2108146.472' }, {address: '12 ANOTHER ST', block: '3903', cnn: '517000', latitude: '12.7690871299999', longitude: '44.412300067132', received: '2016-05-06', x: '6009188.668', y: '2108146.472' }];

arr = arr.map(function(v) {
    return {
      address: v.address,
      latitude: v.latitude,
      longitude: v.longitude
    };
  });

console.log(arr);




在显示的代码中,我已将结果分配回同一个变量,但如果您需要保留对原始完整数据的引用,则可以将其分配给新变量。

顺便说一句,关于你问题的原始措辞,你没有" JSON对象",因为there is no such thing:你有一个对象(在你的特定情况下)一个对象数组)或JSON(作为需要解析的字符串)。您在问题中显示的内容不是有效的JSON,因为JSON需要双引号而不是单引号,并且必须引用属性名称,但它是有效的JS对象文字语法。

如果您的数据实际是JSON,字符串,那么您首先要解析它,然后操纵生成的数组。 (如果你之后真的需要它作为JSON,那你就会重新对结果进行字符串化。)

var json = /* your string here */
var arr = JSON.parse(json);
// map here as above
var updateJson = JSON.stringify(arr);

答案 1 :(得分:1)

假设您已将JSON解析为名为jsonData的JavaScript对象,您只需迭代数组并添加如下:

var jsonData = ...;

var filteredData = [];

for (var i = 0; i < jsonData.length; i++) {
    filteredData.push({
        address: jsonData[i].address,
        latitude: jsonData[i].latitude,
        longitude: jsonData[i].longitude,
    });
}

答案 2 :(得分:1)

使用纯JavaScript:

var arr=
[{address: '1300 BRYANT ST',
  block: '3903',
  cnn: '517000',
  latitude: '37.7690871267671',
  longitude: '-122.411527667132',
  received: '2016-05-06',
  x: '6009188.668',
  y: '2108146.472' }];

var k=arr.map(function(v) {
    return {
        address: v.address,
        latitude: v.latitude,
        longitude: v.longitude
    }
});

这里是CodePen