javascript - 获取对象数组中 javascript 对象的键名

标签 javascript dictionary object lodash javascript-objects

我有一些条目,这些条目有一个分配给它们的类别,并且每个条目都有一个数值

{
   category: "cat1",
   value: -100
}

这是我的条目^。我运行 Loadash GroupBy 对所有类别进行分组。

const groups = _.groupBy(dataSource, (entry) => entry.category);

这里的代码片段返回如下:

{
    "cat1": [
        {
            category: "cat1",
            value: -100
        },
        {
            category: "cat1",
            value: +10
        },  
    ],
    "cat2": [
        {
             category: "cat2",
             value: -100
        },
        {
             category: "cat2",
             value: +40
        },
        //and so on...
}

键是类别名称。对象是相关条目。

我需要运行一个带有嵌入式Reduce的连续Map,通过每个条目值的总和将数组减少为整数。

const categoryValues = _.map(groups, (element) => {
    return {
        categoryName: ???????, 
        //*I DONT KNOW WHAT GOES HERE ^, 
        //I NEED THE NAME OF THE CATEGORY TO BE HERE*
        categoryValue: _.reduce(element,(acc, el) => el.value,0),
    };
});

那是因为我的图形 api 需要他的数据集数组由像这样的对象组成:

{
   "categoryName": "cat1", //*THIS IS MISSING*
   "categoryValue": 999
}

如何访问每个数组的键名?我需要知道类别是如何命名的,以便图表显示其名称。

问号处需要写什么?

最佳答案

您可以从回调函数的第二个参数中获取类别的名称。此回调函数由 lodash 库调用,当它调用 map 函数时,有 3 个参数(值、键、集合)。 map

const categoryValues = _.map(groups, (element, name) => {
  return {
    categoryName: name, //I DONT KNOW WHAT GOES HERE, I NEED THE NAME OF THE CATEGORY TO BE HERE*
    categoryValue: _.reduce(element, (acc, el) => el.value, 0),
  };
});

关于javascript - 获取对象数组中 javascript 对象的键名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66936782/

相关文章:

javascript - 如何在 Vue 中从 graphql 数据集创建动态过滤?

Java从该类的字符串中声明一个类对象?

javascript - 检查对象是否不包含不起作用的值(JS)

python - 动态嵌套字典 Python

python - 尝试将多个函数聚合到新列时出现意外的 KeyError Pandas

javascript - Google 跟踪代码管理器 (GTM) 错误。预期的主要表达

javascript - 使用递归函数遍历 JSON 字符串到内部级别

javascript - 为什么我的 ASP 网站内容没有被 Google 抓取?

javascript - 单击圆圈时如何调整其大小?

javascript - 点击图库中的图片后滑出描述