仅获取对象的某些键

我有这个对象:

const dataset = {
  "2019": {
    "a": 1,
    "b": 2,
    "c": 3,
    "d": 4
  },
  "2020": {
    "a": 2,
    "b": 4,
    "c": 6,
    "d": 8
  },
  "2021": {
    "a": 10,
    "b": 11,
    "c": 12,
    "d": 13
  }
}

我想获得这两个对象:

const obj1 = {
  "2019": {
    "a": 1,
    "c": 3,
  },
  "2020": {
    "a": 2,
    "c": 6,
  },
  "2021": {
    "a": 10,
    "c": 12,
  }
}

const obj2 = {
  "2019": {
    "b": 2,
    "d": 4
  },
  "2020": {
    "b": 4,
    "d": 8
  },
  "2021": {
    "b": 11,
    "d": 13
  }
}

因此,根据内部对象的某些键将对象“拆分”为两个对象。这是我尝试过的:

function pickKeys(dataObj, keys) {
  return Object.entries(dataObj).map(([d, obj]) => {
  return { [d]: _.pick(obj, keys) }
})
}
const obj1 = pickKeys(dataset, ['a', 'c'])

结果是:

const obj1 = [
  { '2019': { a: 1, c: 3 } },
  { '2020': { a: 2, c: 6 } },
  { '2021': { a: 10, c: 12 } }
]

所以几乎在那里,但并不完美。哪种方法更好?

3limin4t0r

问题在于map,当您需要对象时将返回带有替换元素的数组。

由于您已经在使用Lodash,因此可以mapValues用来转换对象的值并返回对象而不是数组。

function pickKeys(dataObj, keys) {
  return _.mapValues(dataObj, obj => _.pick(obj, keys));
}

function pickKeys(dataObj, keys) {
  return _.mapValues(dataObj, obj => _.pick(obj, keys));
}

const dataset = {
  "2019": {
    "a": 1,
    "b": 2,
    "c": 3,
    "d": 4
  },
  "2020": {
    "a": 2,
    "b": 4,
    "c": 6,
    "d": 8
  },
  "2021": {
    "a": 10,
    "b": 11,
    "c": 12,
    "d": 13
  }
}

console.log(pickKeys(dataset, ["a", "c"]));
<script src="https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Dev

Javascript对象数组-按特定键的唯一性过滤,仅保留某些键

来自分类Dev

为什么我不能从该对象数组中仅返回具有某些键的对象数组?

来自分类Python

筛选字典仅包含某些键?

来自分类Javascript

获取对象键的数组

来自分类Javascript

JavaScript从对象获取键

来自分类PHP

从PHP对象数组中保留某些键

来自分类Dev

带对象的TypeScript函数,无需某些键

来自分类Java

Java Springboot:仅返回对象的某些属性

来自分类PHP

Laravel请求无法获取某些键的值

来自分类Dev

熊猫-仅获取某些值的假人

来自分类Dev

如何获取对象的键/值对

来自分类Javascript

获取过滤值的对象键

来自分类Javascript

获取JavaScript对象键列表

来自分类Dev

获取函数使用的对象的键

来自分类Dev

Django获取外键对象

来自分类Dev

打字稿-仅保留特定的对象键

来自分类Dev

jQuery选择器对象-仅需使用某些对象

来自分类Dev

根据某些键随机化对象的JavaScript数组

来自分类Dev

将返回对象转换为json,但仅某些值对

来自分类Java

如何在Java中仅使用某些类对象值?

来自分类Dev

Django-获取外键对象列表

来自分类Dev

如何通过键列表获取对象的值

来自分类Dev

Django获取外键对象列表

来自分类Dev

通过php对象数组的键获取值

来自分类Dev

Javascript从对象获取相应的键/值

来自分类Dev

使用reactjs从api获取外键对象

来自分类Dev

如何从对象获取“任何” mongodb结果键

来自分类Dev

获取JavaScript对象键列表卷。2

来自分类Dev

获取对象数组中重复键的值

TOP 榜单

  1. 1

    来自Microsoft Office加载项taskpane.js的MySQL驱动程序模块的空引用

  2. 2

    HikariPool-1-连接不可用,对于极小的负载服务器,请求在30000ms之后超时

  3. 3

    OpenJDK的和AdoptOpenJDK的区别

  4. 4

    任务':app:minifyReleaseWithR8'.java.lang.NullPointerException的执行失败(无错误消息)

  5. 5

    java.lang.NoClassDefFoundError:无法初始化类org.bytedeco.javacpp.avutil

  6. 6

    是什么在Android的consumer-rules.pro和proguard-rules.pro之间的区别?

  7. 7

    如何优化在Java中这种方法吗?我得到的时间超限

  8. 8

    错误TS1086:一个存取器不能在角9的环境上下文被声明

  9. 9

    java.lang.NoSuchFieldError的:ACCEPT_CASE_INSENSITIVE_VALUES

  10. 10

    如何在exoplayer中播放本地媒体文件的硬编码内容uri

  11. 11

    Keras提前停止回调错误,val_loss指标不可用

  12. 12

    在JavaScript中删除多个对象键值

  13. 13

    请问Spring事务管理工作与Spring WebFlux?

  14. 14

    未定义:grpc.SupportPackageIsVersion7 grpc.ServiceRegistrar

  15. 15

    如何在Python中将字典拆分成多个字典的列表,所有字典的大小均为N

  16. 16

    在IntelliJ IDEA中并行运行测试用例

  17. 17

    Java的无法解析日期的SimpleDateFormat

  18. 18

    tensorflow:仅在可用val_acc的情况下可以保存最佳模型,跳过

  19. 19

    无法装载动态库“libnvinfer.so.6”

  20. 20

    Java反射错误Java.lang.NoSuchMethodException,但是方法存在

  21. 21

    我在android studio中创建了clicker应用。但是,运行时,应用程序在调用“ incrementCount()”后崩溃。为什么?

热门标签

归档