javascript - 对象数组Js的分组元素
问题描述
几个小时以来,我一直在尝试对数组中具有相同值的元素进行分组,但我无处可去
大批:
list = [
{id: "0", created_at: "foo1", value: "35"},
{id: "1", created_at: "foo1", value: "26"},
{id: "2", created_at: "foo", value: "13"},
{id: "3", created_at: "foo1", value: "11"},
{id: "4", created_at: "foo", value: "11"},
{id: "5", created_at: "foo1", value: "16"},
{id: "6", created_at: "foo", value: "26"},
{id: "7", created_at: "foo1", value: "13"},
{id: "8", created_at: "foo1", value: "16"}
];
我想要得到的结果是:
var result = [
[
{id: "0", created_at: "foo1", value: "35"}
],
[
{id: "1", created_at: "foo1", value: "26"},
{id: "6", created_at: "foo", value: "26"}
],
[
{id: "2", created_at: "foo", value: "13"},
{id: "7", created_at: "foo1", value: "13"}
],
[
{id: "3", created_at: "foo1", value: "11"},
{id: "4", created_at: "foo", value: "11"}
],
[
{id: "5", created_at: "foo1", value: "16"},
{id: "8", created_at: "foo1", value: "16"}
]
];
任何想法如何得到它?提前致谢。
注意:我正在使用角度 5。
解决方案
如果您正在考虑为此使用 Lodash,您可以使用_.groupBy
以下方法:
var list = [
{id: "0", created_at: "foo1", value: "35"},
{id: "1", created_at: "foo1", value: "26"},
{id: "2", created_at: "foo", value: "13"},
{id: "3", created_at: "foo1", value: "11"},
{id: "4", created_at: "foo", value: "11"},
{id: "5", created_at: "foo1", value: "16"},
{id: "6", created_at: "foo", value: "26"},
{id: "7", created_at: "foo1", value: "13"},
{id: "8", created_at: "foo1", value: "16"}
];
var response = _.groupBy(list, 'value');
console.log(response);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>
推荐阅读
- node.js - Node JS:通过 node js 脚本将 .scss 文件编译为 .css 和 .map.css
- java - 如何更改默认的 JFrame 窗口颜色?
- reactjs - Typescript and React - Intellisense 发现将接口作为道具传递的问题
- kotlin - 如何在 buildSrc 模块中导入 KotlinMultiplatformExtension?
- php - 支持 Symfony 的自动连线功能时出错:Warning: Declaration of ... should be compatible
- flutter - 如何在列表视图数据中实现搜索栏从本地json文件中检索
- mysql - SQL:如果找到一条匹配的记录,则立即返回
- excel - 具有多个条件和范围的 For 循环
- python - 合并两个列表以创建一个列表,其中包含两个列表的项目作为列表
- c# - c# 数据驱动的方法