首页 > 解决方案 > 根据每个对象中的字段过滤对象数组

问题描述

假设我有一个这样的对象数组:

[
  { "type": 121, "model": "model1" },
  { "type": 128, "model": "model2" },
  { "type": 130, "model": "model2" },
  { "type": 130, "model": "model2" }
]

我想过滤它并根据模型字段创建新对象。

最终结果是:

[
  { "type": 121, "model": "model1" }
]

[
  { "type": 128, "model": "model2" },
  { "type": 130, "model": "model2" },
  { "type": 130, "model": "model2" }
]

我正在使用 typescript 和 lodash 所以最好的

我尝试了 lodash groupBy 和 ES6 映射,但到目前为止没有成功。我想我可以用多个 forEach 循环以一种肮脏的方式做到这一点,但我很确定有一个更简单的方法。

标签: angulartypescriptobjectecmascript-6lodash

解决方案


您可以使用.filter,如下所示:

let newarray1 = array.filter(obj => obj.model === 'model1');
let newarray2 = array.filter(obj => obj.model === 'model2');
...

推荐阅读