我试图使用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
表达式中吗?是否有一种简洁而直接的方法来实现这一目标?
答案 0 :(得分:1)
您可以使用lodash函数omit
:
var withoutId = _.omit(x, ['id']);
var result = _.values(withoutId).join('|'); // ---> '1|2|3'