【发布时间】:2017-01-21 20:39:21
【问题描述】:
我想使用 lodash 从 object(不是数组)中获取前 n 个键/值对。我找到了this answer for underscore,它说使用 first(在 lodash 中不存在),或者使用 take(仅适用于数组)。
尝试从对象中获取“a:7”和“b:8”对的示例节点会话:
> var ld=require("lodash")
undefined
> var o={a:7, b:8, c:9}
undefined
> ld.keys(o)
[ 'a', 'b', 'c' ]
> ld.take(o, 2)
[]
> ld.first(o, 2)
undefined
>
当然,一定有一些简单的方法可以用 lodash 做到这一点,但对于我来说,我找不到任何东西。也许我不得不求助于原生 js?
【问题讨论】:
-
您的预期输出是什么? [ a, b ] ?
-
我希望得到 {a: 7, b: 8} - 一个带有原始子集的“哈希”(对象)。我或多或少将其视为(类似 perl 的)哈希。
-
记住一点——对象中的“第一个”键是完全没有意义的。对象属性不需要一致性,因此“前三个”(理论上)可以是任意三个。浏览器通常按插入顺序返回属性,但不依赖这种行为。
-
@vt5491 更新了我的解决方案以反映新的预期输出
标签: javascript underscore.js lodash