我正在尝试使用 Lodash 获取对象的值(不包括一些字段)。假设我们得到以下对象:
var x = {
id: 0, // <-- id is excluded from output
a: 1,
b: 2,
c: 3
};
现实世界的对象同样相当小,并且始终有一个 id
字段,其他字段可能会有所不同。
我想生成一个以竖线分隔的字符串,其中包含该对象中的值(无特定顺序),再次排除某些字段。我有以下代码,可以正常工作。
var keys_i_want = _
.chain(x)
.keys()
.filter(x=> x !== "id")
.value();
var result = _.values(_.pick(x, keys_i_want)).join("|"); // --> '1|2|3'
此示例所需的结果是 1|2|3
。
我正在寻找一种不太冗长的方法来解决这个问题。 Lodash 肯定有更直接的方法来获取没有几个对象的值吗?我在不到 5 分钟前编写了上面的代码,但我已经发现它难以理解。
我们挑选值的最后一步可以合并到chain
表达式中吗?有没有更简洁、更直接的方法来实现这一目标?
最佳答案
您可以使用lodash函数omit
:
var withoutId = _.omit(x, ['id']);
var result = _.values(withoutId).join('|'); // ---> '1|2|3'
关于javascript - 使用 lodash 获取对象值的子集作为管道分隔字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44686670/