Json 使用过滤器,每个过滤器都位于lodash上

Json 使用过滤器,每个过滤器都位于lodash上,json,lodash,Json,Lodash,我有这个JSON字符串 [ { uri : '/someuri/one', title : 'Title 1', displayLocation : 'ACTION_MENU', masterData : 'LOCATION', iconClass : 'icon-class-1' }, { uri : '/someuri/two', title : 'Title 2', displayLocation : 'ACTI

我有这个JSON字符串

[
  {
    uri : '/someuri/one',
    title : 'Title 1',
    displayLocation : 'ACTION_MENU',
    masterData : 'LOCATION',
    iconClass : 'icon-class-1'
  }, 
  {
    uri : '/someuri/two',
    title : 'Title 2',
    displayLocation : 'ACTION_MENU',
    masterData : 'LOCATION',
    iconClass : 'icon-class-2'
  },
  {
    uri : '/someuri/three',
    title : 'Title 3',
    displayLocation : 'ACTION_MENU',
    masterData : 'JOB',
    iconClass : 'icon-class-3'
  },
  {
    uri : '/someuri/four',
    title : 'Title 4',
    displayLocation : 'SUMMARY',
    masterData : 'LOCATION',
    iconClass : 'icon-class-4'
  }
]
我正在把它转换成

[
  {
    iconClass : 'icon-class-1',
    id : 'anythingUnique',
    text : 'Title 1'
  }, 
  {
    iconClass : 'icon-class-2',
    id : 'anythingUnique',
    text : 'Title 2'
  }
]     
使用以下代码

function myCustomFilter(inputJSONStr) {
  return _.each(inputJSONStr.filter(function(action){
    return action.masterData === 'LOCATION' && action.displayLocation === 'ACTION_MENU';
  }), function (action) {
    return [{iconClass: action.iconClass, id: 'anythingUnique', text: action.title}];
});
但是它返回给我JSON字符串

[
  {
    uri : '/someuri/one',
    title : 'Title 1',
    displayLocation : 'ACTION_MENU',
    masterData : 'LOCATION',
    iconClass : 'icon-class-1'
  },
  {
    uri : '/someuri/two',
    title : 'Title 2',
    displayLocation : 'ACTION_MENU',
    masterData : 'LOCATION',
    iconClass : 'icon-class-2'
  }
]

有人能指出我做错了什么吗?

您可以使用map来执行此操作:

_(inputJSONStr).filter({masterData: 'LOCATION', displayLocation: 'ACTION_MENU'})
     .map(function(a) {
         return {iconClass: a.iconClass, id: 'anythingUnique', text: a.title};
     }).value();
我对你的过滤器做了一点修改,但是如果你愿意的话,你可以按照你的方式来做,我使用了一种功能性的链接方法,但是如果这让你更舒服的话,你可以强制地去做。Map有效地用返回的元素替换数组元素