2016-01-05 22 views
0

我JSON對象提取密鑰對使用Lodash圖書館

{ 
    "data":[ 
     { 
     "customer":101, 
     "profile":7, 
     "context":{ 
      "rows":20, 
      "from":"2016-01-05T06:14:02.750Z", 
      "filter_group_id":null, 
      "order":"desc", 
      "q":"host", 
      "start":0, 
      "source_group_id":null, 
      "hi":"", 
      "filters":[ 

      ], 
      "terms":"host", 
      "source_group_name":null, 
      "until":"2016-01-05T07:14:02.750Z" 
     }, 
     "search_type":"searchui", 
     "search_time":"2016-01-05 13:33:01", 
     "id":724 
     }, 
     { 
     "customer":101, 
     "profile":7, 
     "context":{ 
      "rows":20, 
      "from":"2016-01-05T06:14:02.750Z", 
      "filter_group_id":null, 
      "order":"desc", 
      "q":"host", 
      "start":0, 
      "source_group_id":null, 
      "hi":"", 
      "filters":[ 

      ], 
      "terms":"host", 
      "source_group_name":null, 
      "until":"2016-01-05T07:14:02.750Z" 
     }, 
     "search_type":"searchui", 
     "search_time":"2016-01-05 13:26:42", 
     "id":723 
     } 
    ] 
} 

我想從上面的JSON數據提取鍵值對像下面使用lodash。

我是新手lodash libray用戶。我讀了_.map,_.any,但無法按照要求執行。

預期JSON對象:

[ 
    { 
     "id":724 
     "search_time":"2016-01-05 13:33:01", 
     "filters":[], 
     "from":"2016-01-05T06:14:02.750Z", 
     "until":"2016-01-05T07:14:02.750Z" 
     "terms":"host", 
     "source_group_name":null, 
    }, 
    { 
     "id":723 
     "search_time":"2016-01-05 13:26:42", 
     "filters":[], 
     "from":"2016-01-05T06:14:02.750Z", 
     "until":"2016-01-05T07:14:02.750Z", 
     "terms":"host", 
     "source_group_name":null, 
    } 
] 

回答

0

它應該是這樣的:

var newArray = []; 
_.each(data, function(item){ 
    newArray.push({ 
     "id":item.id 
     "search_time":item.search_time, 
     "filters":context.filters, 
     ...etc... 
    }); 
}); 
0

我不知道這是否是更performatic的方式,但我認爲它的工作原理。

var dataFilter = _.map(data, function(value){ 
    return _.merge(
      _.pick(value.context, 'filters', 'from', 'until', 'terms', 'source_group_name'), 
      _.pick(value, 'id', 'search_time') 
    ); 
});