过滤并删除json数组中的键值

use*_*209 3 angularjs

使用过滤器生成了一个json数组.

orders = filterFilter(vm.gridOptions.data, {
                                sampleId: 295
                        });
Run Code Online (Sandbox Code Playgroud)

在这里我过滤了我的订单数组,我得到了这个.

{
  "orders": [
    {
      "orderId": 51491,
      "orderDate": "2016-12-19T13:35:39",
      "regId": 1354,
      "sampleId": 295,
      "name": "Test",
      "nameAr": "Test"
    },
    {
      "orderId": 51493,
      "orderDate": "2016-12-19T13:35:39",
      "regId": 1354,
      "sampleId": 295,
      "name": "Test",
      "nameAr": "Test",

    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我可以过滤,它应该只在orders数组中保留一个字段.使用角度滤波器我需要这样做.

我需要一个像这样的数组.

{
  "orders": [
    {
      "orderId": 51491
    },
    {
      "orderId": 51493
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

Jar*_*rek 5

当您需要将对象转换为另一个对象时,请使用Array.map()方法.您可以将它与Array.filter()方法一起使用来过滤结果.

orders = vm.gridOptions.data
    .filter(function (x) {
        return x.sampleId === 295;
    })
    .map(function (x) {  
        return {
            orderId: x.orderId
        };
    });
Run Code Online (Sandbox Code Playgroud)

上面的函数返回一个只包含orderId属性的对象数组,sampleId等于295.